存储在数据库中的数据如下,其中category是列名,逗号分隔的字符串是值。
category = 'cat,cat1,cat2,cat3,cat33,cat4';
我正在尝试使用列表中的类别进行搜索:
$query= mysqli_query($mysqli, "SELECT * FROM table where
INSTR(category,'cat3') > 1 ");
但这不起作用,因为结果包括cat3和cat33。
有什么想法可以让我做这个搜索吗?
谢谢!
发布于 2018-07-24 06:18:08
"SELECT * FROM table where category LIKE '%cat3,%'";
"SELECT * FROM table where category LIKE '%cat33,%'";
如果您不想在每个类别名称的末尾添加逗号,那么"SELECT * FROM table where category LIKE '%cat3,%' OR category LIKE '%cat3'";
发布于 2018-07-24 07:00:18
你可以使用下面的查询来“解决”这个问题。但是我很难建议你规范化你的数据库,只有在你真的需要的时候才使用它
SELECT * FROM table WHERE fild LIKE '%,camp3,%' OR fild LIKE 'camp3' OR field LIKE '%,camp3'
https://stackoverflow.com/questions/51487771
复制相似问题