Data house
[MYSQL] 정규식을 이용한 검색 regexp 본문
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 필드에 한글로만 구성된 모든 레코드를 검색한다.
'Computer Knowledge > 데이터베이스' 카테고리의 다른 글
[MYSQL] 자동차 평균 대여 기간 - GROUP BY, DATEDIFF (0) | 2023.05.12 |
---|---|
[MYSQL] 조건에 맞는 사용자 정보 조회 - CONCAT, JOIN (0) | 2023.05.12 |
[MYSQL] 와일드 카드 (0) | 2023.05.12 |
[MySQL] 중성화 여부 파악하기 ( IF 함수 또는 CASE WHEN) (0) | 2023.05.12 |
[MYSQL] 대여 기록 구분 - DATEDIFF, TIMESTAMPDIFF (0) | 2023.05.06 |