我有一个包含逗号分隔值'1,2,3'
的变量我的表格如下
id favourite_id
1 2,5,6
2 3,5,7
3 6,1,3
4 5,6,7
我想在favourite_id列中检查我的变量,以找到favourite_id中至少有一个值是常见的。所以我想输出mysql查询,如下所示
id favourite_id
1 2,5,6
2 3,5,7
3 6,1,3
我知道这不是规范化的表结构,但是我无法改变我的数据库结构。我已经google了很多但是找不到合适的解决方案。
答案 0 :(得分:7)
使用mysql的REGEXP
找到两个解决方案(1)
`favourite_id` REGEXP '[[:<:]]1[[:>:]]|[[:<:]]2[[:>:]]|[[:<:]]3[[:>:]]' //faster then below
(2)
`favourite_id` REGEXP '(^|,)(1|2|3)(,|$)' //slower then above
答案 1 :(得分:4)
使用FIND_IN_SET(str,strlist)
更多细节:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set
SELECT FIND_IN_SET('b','a,b,c,d');