Data house

[MYSQL] 정규식을 이용한 검색 regexp 본문

Computer Knowledge/데이터베이스

[MYSQL] 정규식을 이용한 검색 regexp

l._.been 2023. 5. 12. 15:22
728x90
regexp

like 검색과 달리 정규식을 이용한 검색 방식을 말한다.

공식 url: https://dev.mysql.com/doc/refman/8.0/en/regexp.html

 

MySQL :: MySQL 8.0 Reference Manual :: 12.8.2 Regular Expressions

12.8.2 Regular Expressions Table 12.14 Regular Expression Functions and Operators Name Description NOT REGEXP Negation of REGEXP REGEXP Whether string matches regular expression REGEXP_INSTR() Starting index of substring matching regular expression REGE

dev.mysql.com

정규식 기호
. 문자 하나를 나타냄
* 앞에 나온 문자의 0개 이상 반복을 나타냄
^ 문자열의 처음을 나타냄
$ 문자열의 끝을 나타냄
[.] 괄호 안의 문자열 일치를 확인함
{.} 반복을 나타냄
| or과 동일

 

예시
SELECT * FROM CUSTOMER WHERE NAME REGEXP '가';

customer 필드에 '가'를 포함한 모든 레코드를 출력

동일한 쿼리: SELECT * FROM CUSTOMER WHERE NAME LIKE '%가%';

 

SELECT * FROM CUSTOMER WHERE NAME REGEXP '가|나|다|라';

customer 필드에 '가', '나', '다', '라'를 포함한 레코드를 모두 출력

동일 쿼리: SELECT * FROM CUSTOMER WHERE NAME LIKE "가" OR NAME LIKE "%나%" OR NAME LIKE "%다%" OR NAME LIKE "%라%"

 

SELECT * FROM CUSTOMER WHERE NAME REGEXP '[가-힇]';

customer 필드에 한글이 포함된 모든 레코드를 검색한다.

 

SELECT * FROM CUSTOMER WHERE NAME REGEXP '^[가-힇]+$';

customer 필드에 한글로만 구성된 모든 레코드를 검색한다.