查找以逗号分隔的字符串mysql的值


Find value in comma delimited string mysql

我的数据库中有一个表,看起来像这样:

member_id    name    mgroup_others    member_group_id
    1        Name1      2,3,10              1
    2        Name2      4,5,10              1
    3        Name3      6,7,10              1
    4        Name4       8,9                1

我需要创建一个SELECT语句,选择指定整数在'mgroup_others'逗号列表中的所有成员。因此,例如,我将编写一个SQL语句,选择'mgroup_others'包含'10'的所有成员,它将返回成员1,2和3,但不返回4,因为10不在该字段中。任何帮助将非常感激!谢谢。我也是用PHP写的

SELECT * FROM table WHERE FIND_IN_SET(10,mgoup_others)>0

这是一个临时解决方案,在生产数据库中,这将比涡轮蜗牛慢。

由于mgroup_othersvarchar列,如果您简单地使用LIKE而不是FIND_IN_SET()操作符,如

select * from table1
where mgroup_others like '%10'

你也可以像下面这样使用FIND_IN_SET()

select * from table1
where find_in_set(10,mgroup_others)

在这里看到一个演示小提琴http://sqlfiddle.com/#!2/034711/2

使用LIKE

SELECT * 
FROM yourtable 
WHERE mgroup_others LIKE '%10%'