Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL列出所有重复项_Mysql_Sql_Select_Duplicates - Fatal编程技术网

MySQL列出所有重复项

MySQL列出所有重复项,mysql,sql,select,duplicates,Mysql,Sql,Select,Duplicates,可能重复: 我在MySQL中有这样一个表: ID name email 1 john abc@abc.com 2 johnny abc@abc.com 3 jim eee@eee.com 4 Michael abec@awwbc.com 我怎么能让MySQL查询列出这样的重复查询 重复搜索的结果: ID name email Duplicate 1 john abc@abc.com

可能重复:

我在MySQL中有这样一个表:

ID    name    email
1    john     abc@abc.com
2    johnny   abc@abc.com
3    jim      eee@eee.com
4    Michael  abec@awwbc.com
我怎么能让MySQL查询列出这样的重复查询

重复搜索的结果:

ID    name    email         Duplicate
1    john     abc@abc.com      2
2    johnny   abc@abc.com      2
为了获得更好的性能,请在
电子邮件
列中添加
索引

检查,其中给出以下内容:

SELECT t1.id, t1.name, t1.email FROM t1 INNER JOIN ( 
SELECT colA,colB,COUNT(*) FROM t1 GROUP BY colA,colB HAVING COUNT(*)>1) as t2 
ON t1.email = t2.email;

如果您可以将ID和名称放在逗号分隔的列表中,那么您可以尝试:

select email, count(*) as numdups,
       group_concat(id order by id), group_concat(name order by id)
from t
group by email
having count(*) > 1

这将保存一个联接,尽管结果不是关系格式。

这个问题已经得到了回答:@JW我做错了什么,还是您编写了太复杂的查询?请看我的答案。@Kamil您的查询结果必须有两条记录:
ID1和2
。我想您可能不明白我在问什么。只有一个表,下表是mySQL查询的结果,而不是数据库中的另一个表。@user1995781查询只涉及一个表。
SELECT t1.id, t1.name, t1.email FROM t1 INNER JOIN ( 
SELECT colA,colB,COUNT(*) FROM t1 GROUP BY colA,colB HAVING COUNT(*)>1) as t2 
ON t1.email = t2.email;
select email, count(*) as numdups,
       group_concat(id order by id), group_concat(name order by id)
from t
group by email
having count(*) > 1