SQL Query获取具有逗号分隔值的行

时间:2014-07-30 12:42:01

标签: mysql sql

我有一个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行,因为只有那两行具有我需要的确切值。任何人都可以帮我查询吗?

1 个答案:

答案 0 :(得分:6)

您可以使用FIND_IN_SET功能:

SELECT id from table WHERE FIND_IN_SET('test', promocode) > 0

Demo

注意:

在列中存储以逗号分隔的列表几乎一直在寻找麻烦。请考虑规范化您的数据库。