首页 >数据库 >mysql教程 >如何在 SQL 中查找多列中的精确重复记录?

如何在 SQL 中查找多列中的精确重复记录?

Barbara Streisand
Barbara Streisand原创
2025-01-04 11:36:34779浏览

How to Find Exact Duplicate Records Across Multiple Columns in SQL?

在多列中查找重复值

在 SQL 代码中,您寻求根据特定条件识别重复记录。为此,您可以结合使用分组和条件过滤。

您提供的示例旨在查找与名称和城市列匹配的重复记录。但是,您的原始查询有一个小问题:它还包含仅名称或城市匹配的记录,而不是要求两者完全匹配。

要解决此问题,您可以按如下方式修改查询:

SELECT s.id, t.*
FROM [stuff] s
JOIN (
    SELECT name, city, COUNT(*) AS qty
    FROM [stuff]
    GROUP BY name, city
    HAVING COUNT(*) > 1
) t ON s.name = t.name AND s.city = t.city

此查询将 [stuff] 表与子查询连接起来,该子查询计算每对唯一的名称和城市值的重复记录计数。通过将 HAVING 子句设置为仅包含计数大于 1 的组,您可以将结果限制为代表实际重复项的行。

此查询的输出应与您所需的结果匹配:

id name city
904834 jim London
904835 jim London
90145 Fred Paris
90132 Fred Paris
90133 Fred Paris

以上是如何在 SQL 中查找多列中的精确重复记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn