인프런 커뮤니티 질문&답변

hunter님의 프로필 이미지

작성한 질문수

장래쌤과 함께하는 쉽고 재미있는 SQL 이야기

regexp like 에 특정 특수기호 포함

해결된 질문

24.06.03 11:41 작성

·

108

1

안녕하세요 강사님!

컬럼에 특수기호 중 + (플러스) 문자가 포함된 값을 찾으려고하는데요

정규식에 해당 기호를 쓰면 오류가 발생하는데 어떻게 해당 문자만 골라 뽑을 수 있을지 질문드립니다 .

답변 1

0

장래쌤님의 프로필 이미지
장래쌤
지식공유자

2024. 06. 03. 12:35

안녕하세요?

더하기 (+) 기호는 정규식에서 바로 앞에 있는 문자가 하나 이상 반복됨을 의미하는 역할을 갖습니다. 그래서 문자열에서 + 기호를 찾으려면 '\+' 대신에 '\\+' 로 적어야 합니다. 슬래쉬 두 개를 사용해 + 가 일반 문자열임을 지정하는 것입니다. 제가 작성한 다음 예제 코드를 참고하시기 합니다.

CREATE TABLE test (
	col1 int,
    col2 varchar(20)
);
INSERT INTO test VALUES(1, '-ABC');
INSERT INTO test VALUES(2, 'A+BC');
INSERT INTO test VALUES(3, '+ABC');
INSERT INTO test VALUES(4, 'ABC+');
INSERT INTO test VALUES(5, 'A+=BC');
INSERT INTO test VALUES(6, 'A*BC');

SELECT *
	FROM test
    WHERE col2 REGEXP '\+';

/*
Error Code: 3688. Syntax error in regular expression on line 1, character 1.
*/

SELECT *
	FROM test
    WHERE col2 REGEXP '\\+';


/*
col1    col2
----------------
2	A+BC
3	+ABC
4	ABC+
5	A+=BC
*/

질문해 주셔셔 감사합니다.

hunter님의 프로필 이미지
hunter
질문자

2024. 06. 03. 12:56

감사합니다! 해결했습니다!

hunter님의 프로필 이미지

작성한 질문수

질문하기