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