我已经对此进行了研究,但找不到针对我特定问题的解决方案。
我有一列包含某种格式的数据。这里有些例子:
1
6
14
1;6;14;16
etc...
我需要一个mysql语句,例如它将选择出现16的所有列。
我已经尝试过了,但是它也在选择发生1和6的列:
"SELECT * FROM tbl WHERE kategorien LIKE '%".$_GET['katid']."%' AND status = 1 ORDER BY pos ASC"
在此先感谢您的帮助!
最佳答案
您可以使用MySQL函数FIND_IN_SET:
SELECT * FROM tbl
WHERE
FIND_IN_SET('16', REPLACE(kategorien, ';', ','))>0
但是,将逗号分隔的值存储在单个字段中通常不是一个好主意,请查看以下问题:Is storing a delimited list in a database column really that bad?
关于php - 如何在MySQL语句中使用LIKE和通配符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23490693/