개발 Q&A

제목 mysql 검색 시 구분자를 이용한 검색
카테고리 DB
글쓴이 뫄뫄잉뿌 작성시각 2017/08/21 15:50:54
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 12328   RSS

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,%'; 

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

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

 다음글 영문자 비교 (2)
 이전글 CDN 퍼포먼스 측정 방법에 대해서 질문드립니다 (2)

댓글

변종원(웅파) / 2017/08/21 16:38:08 / 추천 0

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

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

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

뫄뫄잉뿌 / 2017/08/21 17:58:15 / 추천 0

@변종원(웅파)님

답변 감사합니다!

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

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

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