对于每一行,我都有一列包含这样的数字,如1,4,6,3,16,13
。如何搜索包含至少该数字的行?请注意,它不应该仅从11
或6
从16
等误导1
等等。选择至少包含搜索查询的行
SELECT FROM table WHERE category LIKE %$query$%
表结构:
id | title | category | description | rating
对于每一行,我都有一列包含这样的数字,如1,4,6,3,16,13
。如何搜索包含至少该数字的行?请注意,它不应该仅从11
或6
从16
等误导1
等等。选择至少包含搜索查询的行
SELECT FROM table WHERE category LIKE %$query$%
表结构:
id | title | category | description | rating
SELECT * FROM table WHERE FIND_IN_SET(1, category) != 0
哪里1
是什么你正在寻找的号码。
伟大的解决方案,只知道'FIND_IN_SET' +1 – 2012-04-03 11:04:48
@MichaelRushton,非常感谢! – Michelle 2012-04-03 11:18:07
考虑normalizing您的模式,并把CATEGORY_ID在一个单独的表。
直接回答你的问题,请尝试:
WHERE category LIKE "$query,%" OR category LIKE "%,$query,%";
从SQL Injection保护自己使用时,请确保$查询做只包含数字:$query = preg_replace('/[^0-9]/i', '', $query);
请张贴您的餐桌结构 – 2012-04-03 11:01:24
张贴请求。 – Michelle 2012-04-03 11:05:44