选择至少包含搜索查询的行

时间:2012-04-03 10:59:38

标签: mysql search

对于每一行,我都有一个包含此1,4,6,3,16,13之类的数字的列。如何搜索包含至少该数字的行?请注意,它不应仅从111 6误导16,依此类推。


SELECT FROM table WHERE category LIKE %$query$%

表格结构:

id | title | category | description | rating

2 个答案:

答案 0 :(得分:4)

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

1是您正在寻找的任何数字。

答案 1 :(得分:0)

考虑normalizing您的架构并将category_id放在单独的表中。

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

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

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