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,%';
이렇게 해서 검색하는 식을 만들었는데..
혹시 다른 검색식이나, 더 효율이 좋은 검색식이 있을까요?
@변종원(웅파)님
답변 감사합니다!
현재사용중인 mysql 버전이 5.1버전 대 이네요...ㅠㅠ 편법을 찾아야되나봐요...
그래도 다행인건 큰 범위의 검색이 아니라서 한번 검색 시 10개정도의 row라는거네요 ㅜㅜ
검색을 염두에 두었다면 애초에 그렇게 구성을 하는 것이 잘못 된거라..
편법을 사용할 수밖에 없는데 그건 다른 분께 패스합니다.
mysql5.7의 경우 json 컬럼을 사용할 수 있고 검색도 지원됩니다.