我有一个包含近 100 万条记录的数据库表 - 当我编写查询以查看其中有多少是重复的 - 有接近 90K 记录是重复的 - 重复是指具有相同电子邮件地址的记录 - 就像一个电子邮件地址- 可能有 10 条记录。
样本数据
身份证 | 姓名 | 电子邮件 | 电话 1 | 美国广播公司 | abc@gmail.com | 12345 2 | 定义 | def@gmail.com | 12533 3 | 美国广播公司 | abc@gmail.com | 4 | 嗨| hij@gmail.com | 50633 5 | 美国广播公司 | abc@gmail.com | 12345 6 | 定义 | def@gmail.com |
1)ID是表的自增主键
2)如果有两条记录,例如 def@gmail.com - 我需要保留有电话的记录并删除另一条记录
3)现在以 abc@gmail.com 为例 - 有 3 条记录 - 没有手机的一条被删除 - 现在从剩下的两条中删除 - 尽管两者都有所有数据 - 保留第一条并删除第二条
是否可以根据条件编写删除语句,或者是否有更简单的方法来完成此操作。
一个可以玩的 SQLfiddle - http://sqlfiddle.com/#!2/cf8c7
非常感谢