[MySQL]LIKE IN 비슷하게...

SQL 2020. 2. 13. 18:47

칼럼 하나에서 여러 단어로 검색할 때 LIKE를 여러 번 써야 하는 수가 있습니다.

SELECT * FROM #table WHERE `column` LIKE '%aaa%' OR `column` LIKE '%bbb%` OR `column` LIKE `%ccc%'

너무 무식하게 길어집니다.

이런 때 REGEXP 연산자를 써서

SELECT * FROM #table WHERE `column` REGEXP 'aaa|bbb|ccc'

이렇게 줄여서 쓰면 됩니다.

 

반대의 경우도 있습니다.

칼럼 여러 개에 하나의 단어로 검색할 때입니다. 이런 때는 아래처럼 쿼리를 씁니다.

SELECT * FROM #table WHERE `column1` LIKE '%aaa%' OR `column2` LIKE '%aaa%` OR `column3` LIKE `%aaa%'

이를 약간 비틀어서 생각해 보면

SELECT * FROM #table WHERE CONCAT(`column1`, `column2`, `column3`) LIKE '%aaa%'

이렇게 가능합니다.

'SQL' 카테고리의 다른 글

[MySQL]ORDER BY에 조건 걸기  (0) 2020.02.14
[MySQL]LIKE IN 비슷하게...  (0) 2020.02.13

댓글 0