首页 >数据库 >mysql教程 >如何在 SQL 中查找和检索具有非唯一列值的行?

如何在 SQL 中查找和检索具有非唯一列值的行?

Susan Sarandon
Susan Sarandon原创
2024-12-19 17:25:09863浏览

How to Find and Retrieve Rows with Non-Unique Column Values in SQL?

查询具有非不同列值的行

在 SQL 中,常见的任务是检索特定列的值为不明显。这对于识别重复数据或检测异常非常有用。

示例场景

考虑一个名为 Customers 的表,其中包含以下数据:

CustomerName EmailAddress
Aaron [email protected]
Christy [email protected]
Jason [email protected]
Eric [email protected]
John [email protected]

要检索 EmailAddress 列不重复的所有行,我们可以使用以下命令查询:

SELECT EmailAddress, CustomerName
FROM Customers
WHERE EmailAddress IN
  (SELECT EmailAddress FROM Customers GROUP BY EmailAddress HAVING COUNT(*) > 1)

解释

IN 子句过滤在子查询中找到的 EmailAddress 值。子查询对所有 EmailAddress 值进行分组并计算每个值的出现次数。然后,HAVING 子句仅选择出现多次的组(即非不同值)。

通过使用这种方法,我们可以有效地识别并返回 EmailAddress 列不明显的行。在大多数情况下,此方法比使用 EXISTS 运算符要快得多。

以上是如何在 SQL 中查找和检索具有非唯一列值的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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