2012-04-03 3 views
0

각 행에 대해 다음과 같은 숫자가 포함 된 열이 있습니다. 1,4,6,3,16,13. 그 번호를 포함하는 행을 어떻게 검색합니까? 111 또는 6에서 16까지 오해해서는 안됩니다.적어도 검색 쿼리가 포함 된 행 선택


SELECT FROM table WHERE category LIKE %$query$% 

테이블 구조 :

id | title | category | description | rating 
+0

테이블 구조를 게시하십시오 –

+0

요청에 따라 게시하십시오. – Michelle

답변

4
SELECT * FROM table WHERE FIND_IN_SET(1, category) != 0 

1이고 어떤 당신이 찾고있는 번호.

+0

위대한 솔루션, 그냥'FIND_IN_SET'에 대해 알고 +1 –

+0

@MichaelRushton, 정말 고마워! – Michelle

0

normalizing 스키마를 고려하고 별도의 테이블에 CATEGORY_ID을 넣어.

직접 귀하의 질문에 대답하기 위해, 시도 : SQL Injection로부터 자신을 보호하기 위해

WHERE category LIKE "$query,%" OR category LIKE "%,$query,%"; 

을 그것을 사용하는 경우, 있는지 확인 $ 쿼리를 수행하여 숫자 만 포함 $query = preg_replace('/[^0-9]/i', '', $query);

관련 문제