对于每一行,我都有一个包含此1,4,6,3,16,13
之类的数字的列。如何搜索包含至少该数字的行?请注意,它不应仅从1
或11
6
误导16
,依此类推。
SELECT FROM table WHERE category LIKE %$query$%
表格结构:
id | title | category | description | rating
答案 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);