[SQL] 쿼리 where절의 Like 와 In 을 동시에 사용하기

퀴리를 사용할때 where 절에서 like와 in문을 합쳐서 사용하고 싶을때가 있습니다.

1
SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')

위와 같이 사용하고 싶지만 SQL Error [42601]: 오류: 구문 오류, "IN" 라는 오류를 발생시킬 수 있습니다.


WHERE column IN (1,2,3)

먼저 in 문에 대해 알아 봅시다. in 문의 사용은 아래와 같습니다.

1
2
SELECT * FROM table
WHERE column IN (1, 2, 3)

위의 쿼리를 풀어 해석하면 아래와 같습니다.

1
2
3
4
SELECT * FROM table
WHERE column = 1
OR column = 2
OR column = 3

where절의 Like 와 In 을 동시에 사용하기

위에서 풀어서 적은 것과 같이 아래와 같이 or 절로 묶어서 사용할 수 있습니다.

1
2
3
4
SELECT * FROM table
WHERE column LIKE 'Text%'
OR column LIKE 'Hello%'
OR column LIKE 'That%'

TIP

만약 다른 조건도 사용하면서 where절의 Like 와 In 을 동시에 사용하고 싶다면 아래와 같이 사용하면 됩니다.
괄호로 묶어 원하지 않는 결과가 조회되는 것을 막을 수 있습니다.

1
2
3
SELECT * FROM table
WHERE column2 = 'like'
and (column LIKE 'Text%' or column 'Hello%' or column LIKE 'That%' )

Reference

Share