【问题标题】:How to findi duplicate entries in MySQL [duplicate]如何在 MySQL 中查找重复条目 [重复]
【发布时间】:2015-11-01 19:11:42
【问题描述】:

我正在尝试这段代码:

SELECT Email FROM 
(SELECT Email, COUNT(Email) AS cnt
FROM Person
GROUP BY Email
HAVING cnt(*) >1 ) 

对于这个问题: 不知道我做错了什么?

这是我收到的错误:

 Runtime Error Message: Line 6: SyntaxError: near '*) >1 )'
Last executed input: {"headers": {"Person": ["Id", "Email"]}, "rows": {"Person": []}} 

【问题讨论】:

  • 据我所知,'cnt' 不是一个有效的函数。尝试“计数”。

标签: mysql sql duplicates


【解决方案1】:
SELECT Email
FROM Person
GROUP BY Email
HAVING COUNT(*) >1  

SQL FIDDLE

【讨论】:

  • 感谢您介绍 SQL Fiddle。但是当我尝试您的代码时,它无法通过测试SELECT Email, COUNT(Email) AS cnt FROM Person GROUP BY Email HAVING COUNT(*) >1
  • 用你写的查询更新你的问题,我看不出这个查询有什么问题。
【解决方案2】:
 select p.email from person p
 join (
 SELECT Email, COUNT(Email) AS cnt
 FROM Person
 GROUP BY Email
 HAVING count(email) > 1)  s
 on s.email = p.email

您不能在having 或where 子句中使用列的别名。

【讨论】:

  • exists 运算符如何为外部查询返回的每一行计算为 true :) ,即使您确实通过在 exists 运算符查询中添加 where 子句来进行相关查询,这也将是矫枉过正一个相当简单的问题。
  • 感谢您的来信。我在这里运行了您的代码,但没有给我正在寻找的答案; sqlfiddle.com/#!9/56c6a/1
  • @vkp:这是我运行您的代码时遇到的错误:{"headers": {"Person": ["Id", "Email"]}, "rows": {"Person": []}}
  • 知道了@M.Ali..i 修改了它,因为 OP 只需要电子邮件列。
  • 修改了查询@MonaJalal
【解决方案3】:
select email
from person
group by email
having count(*)>1

您不需要嵌套查询来满足您的需求。

【讨论】:

    猜你喜欢
    • 2011-05-30
    • 2012-09-25
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 2016-01-13
    • 2017-08-15
    • 2010-09-30
    • 1970-01-01
    相关资源
    最近更新 更多