MySQL选择重复项

时间:2014-10-30 17:25:26

标签: mysql

我有一个包含group_id,user_id和role_id的表。

由于唯一键设置错误,因此有些用户在一个组中两次,具有不同的角色。像这样:

group_id   |   user_id   |   role_id
    1      |      1      |      1
    1      |      1      |      2 
    2      |      1      |      1
    1      |      2      |      1
    2      |      2      |      3

如何在这种情况下找到用户的用户ID?那么,在这个例子中只有用户id 1?

编辑:

因为@Manil Liyanage的答案和@TX Turner的答案都没有给我正确的结果,也许我不得不再解释一下;

用户可以分为多个组,但不应多次出现在某个组中。不幸的是,由于错误的唯一键,一些用户现在不止一次在同一组中,但只有另一个角色。如何多次查找群组中的用户?

2 个答案:

答案 0 :(得分:2)

以下内容将显示每个组中哪些用户ID重复,以及计数。

SELECT user_id, group_id, COUNT(group_id) cnt
FROM tablename
GROUP BY user_id, group_id
HAVING COUNT(group_id) > 1

答案 1 :(得分:1)

以下应该适合您。它显示重复记录的ida

编辑:使用连接的having-count语句中的键。

SELECT concat(concat('Group is: ',group_id) ,
concat(' user id : ' , user_id)) Places
FROM table
HAVING count(concat(group_id,concat (':',user_id))) > 1