2011-08-06 3 views
0

그래서 무엇을 하려는지 알지 못합니다. 내가하고있는 사이트는 사람이 '복싱', '체중 감소', '지구력'등과 같은 여러 범주를 선택할 수있게합니다. 이들은 모두 쉼표로 구분되고 구성원 테이블의 한 텍스트 필드에 앉아 있습니다 .MySQL의 TEXT 필드에서 쉼표로 구분 된 여러 카테고리 검색

이제 무엇을하려고합니까 (예 : 지구력과 복싱을 말하면서) 한 번에 여러 카테고리를 검색하고 카테고리 필드에서 이들 중 하나 또는 둘 모두를 가진 모든 회원을 찾는 방법을 찾아야합니다.

나는 profile_specialising IN ('Cat1', 'Cat2', 'Cat3')과 같은 것을 생각했지만 ... profile_specialising 필드에 db에 1 개 이상의 카테고리/필드가있는 경우 작동하지 않습니다.

그래서 여러 카테고리가있는 필드에서 여러 카테고리로 검색 할 수 있습니다.

+1

처음에는 쉼표로 구분 된 문자열이 아니어야합니다. "member_id"및 "category"열이있는 별도의 테이블이 필요합니다. –

+0

데이터 모델을 표준화하십시오. 자신의 마이크로 데이터베이스를 데이터베이스 내에 작성하지 마십시오. –

답변

0

정말로 카테고리를 별도의 테이블에 넣고 세 번째 테이블 인 categories_to_members가있는 멤버에게 연결하는 것이 좋습니다. 그러나 가상의 쿼리를 그대로 유지하려는 경우 다음과 같이 표시됩니다.

SELECT * FROM members WHERE category LIKE '%cat%' OR category LIKE '%dog%' 

이 가진 고유의 문제가 있습니다 - LIKE '%cat%'은 "긴장"뿐만 아니라 일치하는 것 "고양이." 좋아하는 사람에게 쉼표를 추가하여이 문제를 해결하려는 것이 IMHO보다 더 큰 문제입니다.

관련 문제