2012-08-09 4 views
0

내가 MySQL의에서 간단한 비교 테스트를 찾고 있어요, 그래서 같은 번호의 저장하는 필드가 있습니다MySQL의 확인 필드에 번호를 가지고 있다면

1;2;23;12 

또는 하나의 옵션을 선택한 경우 생성 그것은 단지 하나가 될 것이라고 항목 :

2 

여하튼 나는 그들 인스턴스의 ID 2를 가지고있는 DB의 항목을 찾을 수 내 선택 쿼리를 필터링하기 위해 찾고 있어요. 그래서 그 id2를 해당 값과 가능한 단일 값으로 비교하려면 일종의 비교가 필요합니다.

답변

3

당신은 find_in_set 기능을 찾고 있습니다 :

Select 
    * 
from 
    your_table 
where 
    FIND_IN_SET('2',REPLACE('1;2;23;12', ';' , ',')) > 0 

내가 데이터베이스를 정상화하는 당신에게 추천 할 것입니다 (참조 : http://en.wikipedia.org/wiki/First_normal_form를) 을 또한, 통지를 당신에게 쿼리 이런 종류의 높은 성능을 가지고하지 마십시오.

+0

굉장! 그래, 나는 정말로 거기에 많은 기록이 없을 것이기 때문에 속도에 대해 정말로 걱정하지 않는다. 그것은 내가 추가 할 새로운 폼과 xreference를위한 두 번째 테이블을 할 필요가 없게한다. – jfreak53

관련 문제