질문Q #18543
mysql 검색 시 구분자를 이용한 검색
뫄뫄잉뿌2017-08-21 16:20:54

mysql 에서 특정 필드가 ,(구분자)로 id가 연결되어 있을 때를 select 하는 방법에 대한 문의입니다.

 

예를 들어, 

board 테이블의 refer 필드에 1,2,3 값이 있고, ,(쉼표 구분자)와 같이 user_id가 각각 1,2,3인 값이 채워져있다고 할 때,

1번 혹은 2번 혹은 3번에 대한 검색을 하고 싶은데..

user_id가 2인 것을 board 테이블의 refer 필드에서 검색하고 싶으면

select * from board where  CONCAT(',',refer,',')  like '%,2,%' or CONCAT(',',refer,',')  like '%,2,%'; 

이렇게 해서 검색하는 식을 만들었는데..

혹시 다른 검색식이나, 더 효율이 좋은 검색식이 있을까요?

답변3
#1 변종원(웅파) 2017-08-21 17:08:08

검색을 염두에 두었다면 애초에 그렇게 구성을 하는 것이 잘못 된거라..

편법을 사용할 수밖에 없는데 그건 다른 분께 패스합니다.

mysql5.7의 경우 json 컬럼을 사용할 수 있고 검색도 지원됩니다.

#2 뫄뫄잉뿌 2017-08-21 18:28:15

@변종원(웅파)님

답변 감사합니다!

현재사용중인 mysql 버전이 5.1버전 대 이네요...ㅠㅠ 편법을 찾아야되나봐요...

그래도 다행인건 큰 범위의 검색이 아니라서 한번 검색 시 10개정도의 row라는거네요 ㅜㅜ

#3 변종원(웅파) 2017-08-22 14:10:27
뫄뫄잉뿌/ 데이터가 많지 않다면 테이블 하나 만들어서 1:n 으로 만들어놓고 검색하세요.