Mysql 忽略数据库中重复的行

Mysql 忽略数据库中重复的行,mysql,sql,Mysql,Sql,我有一个csv文件,我已经在phpmyadmin的数据库中导入了该文件,我需要向一个文件写入一个新的csv文件,但忽略重复的电子邮件,例如,如果我的查询发现以下两行: 41 Alain Aiseng a.as@gmail.com DL MCI 42 Alain Aiseng a.as@gmail.com LNKD 05 14 在我的新csv输出中,应忽略这两行。此SQL查询应该是什么?您可以为此生成一个查询(然后将结果保存到文件中)。查询是: select

我有一个csv文件,我已经在phpmyadmin的数据库中导入了该文件,我需要向一个文件写入一个新的csv文件,但忽略重复的电子邮件,例如,如果我的查询发现以下两行:

41  Alain   Aiseng  a.as@gmail.com  DL MCI    

42  Alain   Aiseng  a.as@gmail.com  LNKD 05 14   

在我的新csv输出中,应忽略这两行。此SQL查询应该是什么?

您可以为此生成一个查询(然后将结果保存到文件中)。查询是:

select t.*
from table t
group by name, email
having count(*) = 1;
name
email
对应于
Alain Aiseng
a中的任何列。as@example.com


请注意,这使用了MySQL特性,其中对于聚合查询,列名不必位于
group by
中。这是一种使用此功能完全安全的情况,因为
having
子句指定只有一行符合条件。

在此处发布Alain的电子邮件地址可能不是一个好主意。这不是一个“功能”这是很好的依靠,它只是回来咬人-有无数的问题,正是因为这一点。使用合理的聚合(或省略未分组的列)而不是这种“魔力”。
       select * from table 
       where email not in
       (select email from table group by email having count(*)>1)a;