여러개(다중) LIKE 검색 방법 (REGEXP_LIKE 함수)

by 조쉬 posted Dec 08, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

오라클에서 여러 개의 단어를 LIKE로 검색하기 위해서는 동적 쿼리를 사용하거나 LIKE를 OR로 묶어서 사용했다.  

Oracle 10g부터 정규식 함수가 추가 되었으며 그 중에서 REGEXP_LIKE 함수를 사용하여 다중 검색을 쉽게 할 수 있게 되었다.

 

검색할 단어를 파이프(|)로 연결하여 하나의 문자열로 만든 후 사용하면 된다.

 

WITH TEMP_TABLE AS (
   SELECT 'Samsung Galaxy Note 4' TEXT FROM dual union all
   SELECT 'Apple iPhone 6 Plus' TEXT FROM dual union all
   SELECT 'Samsung Galaxy S5' TEXT FROM dual union all
   SELECT 'Apple iPhone 6' TEXT FROM dual union all
   SELECT 'LG G3' TEXT FROM dual union all
   SELECT 'SonyXperia Z3' TEXT FROM dual union all
   SELECT 'Motorola Moto G' TEXT FROM dual union all
   SELECT 'HTC One M8' TEXT FROM dual union all
   SELECT 'Nokia Lumia 930' TEXT FROM dual
)
SELECT *
   FROM TEMP_TABLE
 WHERE REGEXP_LIKE(TEXT, 'Samsung|Apple|Nokia')

 

 

 

 

대문자소문자의 구분 없이 조회하고 싶다면 세 번째 인자에 “i”를 넣어주면 된다.