mysql - MySQL中提取重复记录的查询是什么

标签 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

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

最佳答案

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

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

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

关于mysql - MySQL中提取重复记录的查询是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38591843/

相关文章:

sql - 如何获取两行值

mysql - 在表中的更新列上创建触发器

php - MySQL 仅选择属于特定页面上查看的帖子的评论(使用 LIMIT 分页)

Python 3.x pandas 如何比较重复项并删除 csv 中具有较高值的​​行?

sql - 如何在表中查找重复名称

java - 如何将事务插入到 mysql 中的表中,使其对每个用户都是唯一的

php - 使用 PHP 存储用户输入数据 24 小时

python - 使用 Python 查找两个文本文件的段落中的重复关键字,并在新的文本文件中列出结果(比较它们)

python - 比较两个文本文件并删除python中的重复项

根据 R 中特定间隔内的列值删除重复项