我的数据库中有一个表,看起来像这样:
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_others
是varchar
列,如果您简单地使用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%'