우선 아래와 같은 해시태그를 넣어 놓은 테이블이 하나 있다.필자는 해시태그(hashtag)를 컬럼에 집어 넣을때, 띄워쓰기가 없는 단어를, 콤마(,)로 구분해서 집어넣어 놓는다. 그런데 여기서 단순히 like검색으로 'a'라는 해시태그를 검색한다면, idx가 1,3,5인 것들도 검색 될것이다.MariaDB [test]> select * from hashtag_tbl; +-----+----------------------------+ | idx | keywords | +-----+----------------------------+ | 1 | aaa,bbb,ccc | | 2 | keyword1,keyword2,keyword3 | | 3 | a,aa,aaa,aaaa,aaaaa | | 4 | keyword,word,key | | 5 | key,aa | | 6 | word,bbb | +-----+----------------------------+ 6 rows in set (0.000 sec)하지만, 아래처럼 concat()과 꼼수를 이용하면 이용하면 아래와 같이 원하는 키워드가 포함된 row만 검색이 가능하다.MariaDB [test]> select * from hashtag_tbl where keywords like '%a%'; +-----+---------------------+ | idx | keywords | +-----+---------------------+ | 1 | aaa,bbb,ccc | | 3 | a,aa,aaa,aaaa,aaaaa | | 5 | key,aa | +-----+---------------------+ 3 rows in set (0.000 sec)concat으로 keywords 컬럼 앞뒤에 콤마(,)를 붙여주어, 모든 키워드의 앞뒤에 콤마(,)가 있도록 해놓은다음에, like검색시에 해당 단어 앞뒤에도 콤마(,)가 있게 해주면 해당 row만 검색이 가능하게 된다.MariaDB [test]> select * from hashtag_tbl where concat(',',keywords,',') like '%,a,%'; +-----+---------------------+ | idx | keywords | +-----+---------------------+ | 3 | a,aa,aaa,aaaa,aaaaa | +-----+---------------------+ 1 row in set (0.000 sec) MariaDB [test]> select * from hashtag_tbl where concat(',',keywords,',') like '%,aa,%'; +-----+---------------------+ | idx | keywords | +-----+---------------------+ | 3 | a,aa,aaa,aaaa,aaaaa | | 5 | key,aa | +-----+---------------------+ 2 rows in set (0.005 sec) MariaDB [test]> select * from hashtag_tbl where concat(',',keywords,',') like '%,bb,%'; Empty set (0.000 sec) MariaDB [test]> select * from hashtag_tbl where concat(',',keywords,',') like '%,bbb,%'; +-----+-------------+ | idx | keywords | +-----+-------------+ | 1 | aaa,bbb,ccc | | 6 | word,bbb | +-----+-------------+ 2 rows in set (0.000 sec) MariaDB [test]> select * from hashtag_tbl where concat(',',keywords,',') like '%,word,%'; +-----+------------------+ | idx | keywords | +-----+------------------+ | 4 | keyword,word,key | | 6 | word,bbb | +-----+------------------+ 2 rows in set (0.000 sec)