본문 바로가기
DB

[MySQL] 특정 문자포함 검색 (LIKE & REGEXP)

by foreverever 2019. 9. 11.
반응형

LIKE 

LIKE 연산자는 특정 문자가 포함되어 있는 데이터를 검색 할때 사용한다.

 

1. 특정 문자로 시작하는 데이터 검색

SELECT [필드명] FROM [테이블명] WHERE [필드명] LIKE '특정 문자열%';

 

2. 특정 문자로 끝나는 데이터 검색

SELECT [필드명] FROM [테이블명] WHERE [필드명] LIKE '%특정 문자열';

 

3. 특정 문자를 포함하는  데이터  검색

SELECT [필드명] FROM [테이블명] WHERE [필드명] LIKE '%특정 문자열%';

 

 

이때, 복수개의 특정 문자를 포함하는 데이터를 검색하기 위해서 OR연산자를 사용해야한다.

SELECT [필드명] FROM [테이블명] WHERE [필드명] LIKE '%특정 문자열%' OR [필드명] LIKE '%특정 문자열2%';

 

뭔가 번거롭다. 특정 문자가 많아질수록 OR, 필드명, LIKE가 중복되기 때문이다.

 

REGEXP

이를 해결하고자, REGEXP 연산자를 사용하도록 한다.

REGEXP 연산자는 LIKE보다 복잡한 패턴을 검색 할때 사용한다.

 

복수개의 특정 문자를 포함하는 데이터 검색 (특정 문자열을 '|' 를 기준으로 나눈다)

SELECT [필드명] FROM [테이블명] WHERE [필드명] REGEXP '특정 문자열|특정 문자열2';

 

 

성능관련 이슈 : https://engineering.huiseoul.com/mysql-regexp-%ED%8D%BC%ED%8F%AC%EB%A8%BC%EC%8A%A4-%EA%B0%84%EB%8B%A8-%ED%85%8C%EC%8A%A4%ED%8A%B8-4336af0b55b

반응형