제목 | mysql 검색 시 구분자를 이용한 검색 | ||
---|---|---|---|
카테고리 | DB | ||
글쓴이 | 뫄뫄잉뿌 | 작성시각 | 2017/08/21 15:50: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,%'; 이렇게 해서 검색하는 식을 만들었는데.. 혹시 다른 검색식이나, 더 효율이 좋은 검색식이 있을까요? |
|||
다음글 | 영문자 비교 (2) | ||
이전글 | CDN 퍼포먼스 측정 방법에 대해서 질문드립니다 (2) | ||
변종원(웅파)
/
2017/08/21 16:38:08 /
추천
0
|
뫄뫄잉뿌
/
2017/08/21 17:58:15 /
추천
0
@변종원(웅파)님 답변 감사합니다! 현재사용중인 mysql 버전이 5.1버전 대 이네요...ㅠㅠ 편법을 찾아야되나봐요... 그래도 다행인건 큰 범위의 검색이 아니라서 한번 검색 시 10개정도의 row라는거네요 ㅜㅜ |
변종원(웅파)
/
2017/08/22 13:40:27 /
추천
0
뫄뫄잉뿌/ 데이터가 많지 않다면 테이블 하나 만들어서 1:n 으로 만들어놓고 검색하세요.
|
검색을 염두에 두었다면 애초에 그렇게 구성을 하는 것이 잘못 된거라..
편법을 사용할 수밖에 없는데 그건 다른 분께 패스합니다.
mysql5.7의 경우 json 컬럼을 사용할 수 있고 검색도 지원됩니다.