MySQL中用于提取重复记录的查询是什么

时间:2016-07-26 13:53:53

标签: mysql duplicates

想要在MySQL数据库中查找重复记录。这可以写成:

SELECT address, count(id) as cnt FROM list
GROUP BY address HAVING cnt > 1

这给了我:

101 Saint ST    3

我想拉它,以便显示每一行都是重复的。例如:

SIM    JANE    101 Saint ST
JOHN   SMITH   101 Saint ST

任何人都知道如何做到这一点?我试图避免做第一个,然后在代码中用第二个查询查找重复项。

1 个答案:

答案 0 :(得分:0)

此处的一个选项是将原始表连接到确定计数的子查询:

SELECT t1.last, t1.first, t1.address
FROM list t1
INNER JOIN
(
    SELECT address
    FROM list
    GROUP BY address
    HAVING COUNT(*) > 1
) t2
    ON t1.address = t2.address

子查询服务器过滤器,该过滤器删除不具有至少一个具有公共地址的其他记录的记录。请注意,我从此子查询的选择列表中删除了COUNT,因为您似乎没有在最终结果中使用它。