忽略数据库中的重复行

时间:2014-05-14 21:01:49

标签: 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查询应该是什么?

2 个答案:

答案 0 :(得分:3)

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

select t.*
from table t
group by name, email
having count(*) = 1;

nameemail对应于Alain Aisenga.as@example.com的任何列。

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

答案 1 :(得分:3)

       select * from table 
       where email not in
       (select email from table group by email having count(*)>1)a;