字段编辑value '3,2,4'
sql语句
SELECT * FROM `table` where '3' in (editors)
结果1行=正确
SELECT * FROM `table` where '2' in (editors)
结果0行=不正确。
我认为value '3,2,4'
被视为一个字符串,如何解决这个问题?
答案 0 :(得分:1)
您必须使用FIND_IN_SET()
或像
WHERE editors='2'
OR editors LIKE '2,%'
OR editors LIKE '%,2,%'
OR editors LIKE '%,2'
现在您的查询被解释为
WHERE '2' IN ('1,2,3')
a.k.a
WHERE '2' = '1,2,3'
而不是
WHERE '2' IN ('1', '2', '3')
a.k.a.
WHERE '2' = '1' OR '2' = '2' OR '2' = '3'
就像你想要它一样。