从包含表的多个值的字段中排除一个值


Exclude one value from a field, containing multiple values of a table

我有一个表,命名为group,在mysql。其中一个字段是member_ids,其值类似于(2,3,4,5)。

我想在一个地方用2、4、5不包括3,在另一个地方用3不包括其他。

我使用mysql作为PHP数据库。任何想法如何做到与mysql查询或php代码?

member_ids: (2,3,4), (2,3,4,5), (1,3,5,7) ...

单个单元格中有多个值。

现在我想使用第二个单元格的所有值,除了3,即(2,4,5)从另一个表member中找到email_id

我只能在查询中使用'3',而不能使用其余部分,即(2,4,5)。

我需要从member表中找到'id'= 2,4和5的电子邮件id

要获取值不包括3的所有member_ids,可以写入

select member_ids from group where member_ids != 3;

要获得所有值为3的member_ids(不包括其他),可以写

select member_ids from group where member_ids = 3;

您可以这样使用FIND_IN_SET():

SELECT g.member_ids
FROM group g
WHERE FIND_IN_SET('2', g.member_ids) > 0
   OR FIND_IN_SET('4', g.member_ids) > 0
   OR FIND_IN_SET('5', g.member_ids) > 0