반응형
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 인젝션에 취약해지기 때문에
정규식의 검색을 개발자가 미리 정한 테두리 안에서 행해져야 한다.
반응형
'php관련' 카테고리의 다른 글
간단히 익혀 보는 리눅스 vi 명령어 (0) | 2011.11.22 |
---|---|
특정파일(디렉토리) 제외하고 압축하기 (0) | 2011.11.22 |
css min-height IE6 적용 방법 (0) | 2011.11.18 |
object 테그 이용해 pdf 파일을 웹에 적용하기 (0) | 2011.11.18 |
td에 빈값으로 인해 border가 안나올때 CSS 적용 (0) | 2011.11.18 |