This post is from a low-reputation account and contains an unverified outbound link. Be cautious before clicking external links.

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

Words
134
Reading
1 min
Listen
Play
8y

regexp 란?

like 검색과는 달리 정규식을 이용한 검색 방식을 말한다.
regexp는 우리에게 like보다 좀 더 다양한 검색을 할 수 있도록 도움을 준다.
(관련 URL : http://dev.mysql.com/doc/refman/5.1/en/regexp.html )

regexp 를 이용한 검색의 예제

select * from test where name regexp '가'

name 필드에 '가'를 포함한 모든 레코드를 출력한다.
(select * from test where name like '%가%') 의 쿼리와 동일하다

select * from test where name regexp '가|나|다|라'

name 필드에 가 또는 나 또는 다 또는 라 를 포함한 레코드를 모두 출력한다.
(select * from test where name like '%가%' or name like '%나%' or name like '%다%' or name like '%라%') 쿼리와 동일

select * from test where name regexp '[가-힇]'

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

select * from test where name regexp '^[가-힇]+$'

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

regexp 정규식 기호에 대한 간단한 소개

. :   .
* :    0   .
^ :   .
$ :   .
[.] :     .
{.} :  .
| : or  .
  • 참고사항
    정규식의 검색을 이용할때 절대 사용자에게 정규식 기능을 제공해선 안된다.
    각 종 오류를 포함할 수 있고 sql 인젝션에 취약해지기 때문에
    정규식의 검색을 개발자가 미리 정한 테두리 안에서 행해져야 한다.
[MySQL] 정규식을 이용한 검색 regexp | Ecency