like 를 여러개 조건걸고 싶은데요. 6

by 손님 [2010.07.08 14:02:22]



안녕하세요..
혼자 고민하다가 풀리지가 않아서 ㅜㅜ
선배님들의 도움을 구하고자 이렇게 글 올립니다.

in을 사용하면,
name in ('aaa','bbb','ccc')   이런식이잖아요.. 여러개를 비교할수 있도록

혹시 like는 없나 해서요..

like는
name like '%aa%' 이런식으로 쓰면 하나만 비교해야하는데,
혹시 like를 이용해서 여러개를 한꺼번에 비교할 수 있는 방법이 없나요??

name like in ('%aa%','%bb%','%cc%')
이런식으로요...;;;

가르쳐 주시면 정말 감사감사~ ^^
by v상이v [2010.07.08 14:19:51]
regexp_like 사용 가능하시다면...
이거 쓰시면 될꺼 같은데요..?

by 마농 [2010.07.08 14:21:21]
-- OR 를 사용하시면 됩니다.
WHERE (name LIKE '%aa%'
OR name LIKE '%bb%'
OR name LIKE '%cc%')

-- OR 를 사용하기 싫으시다면 응용방법~
WHERE INSTR(name, 'aa') + INSTR(name, 'bb') + INSTR(name, 'cc') > 0

-- 10g 부터는 정규식을 이용하시면 됩니다.
WHERE REGEXP_LIKE(name, 'aa|bb|cc')

by v상이v [2010.07.08 14:23:04]
WITH tmp AS (
SELECT 'AAA' NAME FROM dual UNION ALL
SELECT 'BBB' NAME FROM dual UNION ALL
SELECT 'CCC' NAME FROM dual
)
SELECT *
FROM tmp
WHERE regexp_like(name, 'AA|BB|DD')

by 손님 [2010.07.08 14:52:55]
모든분들 답변 정말 감사합니다.^^
잘 응용해 보겠습니다.ㅎ 감사드립니다.. (__)

by 손님 [2012.11.04 22:54:57]

오오미 사랑합니다.


by 물개 [2013.11.18 10:14:16]
오우... 찾던 내용이 있군요!! 
REGEXP_LIKE

반대 값은
NOT REGEXP_LIKE 
굿입니다...
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입