Mysql select 문법에서 like 와 regexp 의 차이점..
글쓴이: gyxor / 작성시간: 월, 2003/07/14 - 7:31오후
mysql> select * from tt01 where name regexp 'de$'; +------+------+ | name | age | +------+------+ | ede | 32 | | dde | 46 | +------+------+ 2 rows in set (0.00 sec) mysql> select * from tt01 where name like '%de'; +------+------+ | name | age | +------+------+ | ede | 32 | | dde | 46 | +------+------+ 2 rows in set (0.00 sec)
이렇게 두가지를 사용해서 검색을 했는데요
책에선
[Like를 사용할경우 값을 찾을수 없음을 기억하라..]
라고 나와있는데요.. 그게 무슨의미인지..
Like 와 regexp 의 차이점은 무엇인지 알고싶습니다.
Forums:
책의 내용은 어떤 내용인지 모르겠지만...
MySQL에서 like는 "%"를 이용하여 불특정 문자를 나타낼때 사용하지만
regex는 검색에 정규 표현식을 사용하여 보다 복잡한 문자열 검색을 수행할 수 있습니다.
정규표현식은 http://kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/x10468.html를 보시면 간략히 나와있네요.
gyxor님께서 올려주신 정규표현식과 like 구문은 동일한 구문입니다.
gyxor님께서 올려주신 정규표현식과 like 구문은 동일한 구문입니다.
다만
정규표현식은 문자가 나타는 패턴을 약간의 문자식으로 편리하게
사용할 수 있도록 만든 것이며
like 구문은 쉘에서의 *,. 와 동일한 역할을 수행하게 하는 문장이죠
mysql> select * from tt01 where name regexp '^[0-9][0-9]*.*de$'
이렇게 쓰면 name 이 숫자로 시작하고 끝이 de로 끝나는 문자열을 검색해
주죠.
like로는 못하죠. ^^;
댓글 달기