2012-04-03 67 views
0

对于每一行,我都有一列包含这样的数字,如1,4,6,3,16,13。如何搜索包含至少该数字的行?请注意,它不应该仅从11616等误导1等等。选择至少包含搜索查询的行


SELECT FROM table WHERE category LIKE %$query$% 

表结构:

id | title | category | description | rating 
+0

请张贴您的餐桌结构 – 2012-04-03 11:01:24

+0

张贴请求。 – Michelle 2012-04-03 11:05:44

回答

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

哪里1是什么你正在寻找的号码。

+0

伟大的解决方案,只知道'FIND_IN_SET' +1 – 2012-04-03 11:04:48

+0

@MichaelRushton,非常感谢! – Michelle 2012-04-03 11:18:07

0

考虑normalizing您的模式,并把CATEGORY_ID在一个单独的表。

直接回答你的问题,请尝试:

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

SQL Injection保护自己使用时,请确保$查询做只包含数字:$query = preg_replace('/[^0-9]/i', '', $query);

相关问题