mybatis를 하다가 검색을 만들어야 할 일이 생겨서 like를 쓰는데, 갑자기 여러개를 검색할 수 있게 해달라는 요구가 들어왔다. 거의 다 만들었는데... 그래서 수정을 적게 하기 위해 like를 여러개 쓰다보니 한 번에 검색할 수 있을거 같아서 검색해 보니 나와 동일한 사람이 있었다. 자세히 설명은 달아 주지 않았지만 검색으로 보니 오라클에서 정규식으로 검색하는 방법이 있었다. 사용할 일이 없어서 몰랐...
regexp_like는 정규식으로 검색하는 함수인데, like in 과 같은 검색도 가능하다.
select *
from table
where regexp_like(column, '검색어1|검색어2')
검색어를 계속 추가하면 되겠으나 자료가 많은 테이블을 조회해보지 못해서 조금 아쉽다. row가 180인 테이블에서 해보니 느리지는 않았다. 당연하려나...
regexp_like는 정규식 검색이기 때문에 다양한 방식의 검색이 가능하다.
[a-z] |
소문자 알파벳 포함 |
[A-Z] |
대문자 알파벳 포함 |
[0-9] |
숫자 포함 |
[a-z]{3} |
3글자로 연속된 소문자 알파벳 포함 |
[A-Z][0-9] |
대문자, 숫자로 연속된 알파벳 포함 |
[A-Z]?[0-9] |
대문자와 숫자 사이에 공백이 있을 수 있음 |
[A-Z]*[0-9] |
대문자와 숫자 사이에 공백이 있을 수 있음 |
^[A-Z] |
대문자로 시작되는 문자열 |
[A-Z]$ |
대문자로 끝나는 문자열 |
뭐 자바랑 비슷하네...
활용도를 좀 더 생각해봐야겠다.
출처:
http://lee-mandu.tistory.com/48
'DB > Oracle' 카테고리의 다른 글
ojdbc와 jdk 버전 (0) | 2018.04.26 |
---|---|
모르는 테이블 조회 (0) | 2016.07.20 |
DB에서 컬럼 순서 랜덤하게 가져오기 (0) | 2015.08.05 |
오라클 포트 설정하기 (0) | 2014.05.21 |
한글 - 알파벳 - 숫자 순으로 정렬 (0) | 2013.07.29 |