检查表中是否存在逗号分隔值

时间:2015-09-18 10:07:23

标签: php mysql

我有一个表:users_group

id | group_id | user_ids
---|----------|---------
1  |   1      | 3
2  |   1      | 2
3  |   3      | 2
4  |   2      | 3
5  |   2      | 4
6  |   2      | 2

条件是user_ids只能插入一次。但在上面的情况下,它被插入多个group_id。

我正在使用此查询在foreach循环中插入users_id字段: INSERT INTO users_group(group_id,user_ids)VALUES(2,3)

如何防止插入重复的user_ids

有更好的查询吗?

2 个答案:

答案 0 :(得分:4)

是的,有更好的方法可以解决此问题,但解决方案并不意味着查询。

您应该创建一个名为user_id的新列,而不是user_id列,并添加如下数据:

id | group_id | user_id
1  |   1      | 3
2  |   1      | 4
3  |   2      | 3
4  |   2      | 4
5  |   2      | 2
6  |   3      | 2
7  |   3      | 3
8  |   3      | 4

这称为Many to Many关系,使一切变得更容易。之后你只需要加入表格;

答案 1 :(得分:0)

我认为您希望首先在列上创建唯一索引,而该列只包含唯一值。在这种情况下,它将是user_ids列。