2012-04-03 20 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 

をあなたが探している番号。

+0

素晴らしいソリューション、ちょうど 'FIND_IN_SET'について知っていた+1 –

+0

@MichaelRushton、ありがとうございました! – Michelle

0

normalizingスキーマを考慮し、別のテーブルの上にCATEGORY_IDを置きます。

直接してみてください、あなたの質問に答えるために:

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

SQL Injectionから自分を守るために確認してください$クエリが実行して数値のみが含まれている、ことを使用している場合:1は何である$query = preg_replace('/[^0-9]/i', '', $query);

関連する問題