mysql REGEXP 정규표현식

2023. 1. 30. 15:19 Database/mysql tip

REGEXP

LIKE 연산자보다 더욱 복잡한 패턴을 검색하고 싶을 때는 REGEXP 연산자를 사용할 수 있습니다.

REGEXP 연산자는 정규 표현식을 토대로 하는 패턴 매칭 연산을 제공합니다.

 

REGEXP 연산자와 함께 사용할 수 있는 패턴은 다음과 같습니다.

패턴설명

. 줄 바꿈 문자(\n)를 제외한 임의의 한 문자를 의미함.
* 해당 문자 패턴이 0번 이상 반복됨.
+ 해당 문자 패턴이 1번 이상 반복됨.
^ 문자열의 처음을 의미함.
$ 문자열의 끝을 의미함.
| 선택을 의미함.(OR)
[...] 괄호([]) 안에 있는 어떠한 문자를 의미함.
[^...] 괄호([]) 안에 있지 않은 어떠한 문자를 의미함.
{n} 반복되는 횟수를 지정함.
{m,n} 반복되는 횟수의 최솟값과 최댓값을 지정함.

 

만약 해당 패턴과 일치하지 않는 데이터를 찾고 싶을 때는 NOT REGEXP 연산자를 사용하면 됩니다.

다음 예제는 Name 필드의 값이 '김'으로 시작하지 않고, '수'으로 끝나지도 않는 레코드를 선택하는 예제입니다.

 

SELECT * FROM employee
WHERE Name REGEXP '^김|수$';