我有一个SQL表,其中包含这样的行
--------------------
id promocode
--------------------
1 test,test2
2 test,test3
3 test2,test3
现在我想在'promocode'列中选择值为'test'的行。
当我使用
SELECT id from table WHERE promocode LIKE 'test'
它返回所有行,因为所有行都包含字符串'test'。但我只想要1& 2行,因为只有那两行具有我需要的确切值。任何人都可以帮我查询吗?
答案 0 :(得分:6)
您可以使用FIND_IN_SET功能:
SELECT id from table WHERE FIND_IN_SET('test', promocode) > 0
注意:强>
在列中存储以逗号分隔的列表几乎一直在寻找麻烦。请考虑规范化您的数据库。