如何从记录超过10万的数据库中删除重复的电子邮件?

时间:2019-05-26 03:49:33

标签: mysql sql

我有一个大约126K条目的数据库,其中许多条目包含重复的电子邮件。我想删除所有具有重复条目的条目,而只保留最早创建的条目。

我尝试使用以下查询,但它会花费很多时间,并且会使我的服务器带宽最大化。

有人可以帮忙吗?

DELETE n1 FROM table n1, table n2 WHERE n1.ID > n2.ID AND n1.email = n2.email


数据库规范

  1. PhpMyAdmin版本信息:3.5.3
  2. 服务器:通过UNIX套接字的Localhost
  3. 软件:MySQL
  4. 软件版本:5.0.67-community-MySQL Community Edition(GPL)
  5. 协议版本:10
  6. 服务器字符集:UTF-8 Unicode(utf8)

1 个答案:

答案 0 :(得分:-1)

也许您可以创建一个包含唯一电子邮件的临时表,然后删除数据库中不止一次的所有电子邮件。

CREATE TEMPORARY TABLE tab_temp
SELECT * FROM table GROUP BY email;

然后

DELETE FROM table
WHERE id NOT IN ( SELECT id FROM tab_temp );

您可以删除重复的内容

相关问题