MySQL重复具有不同ID的行

标签 mysql sql sql-delete

我有一个包含许多重复行的 MySQL 表。我怎样才能找到 id 并删除它们。我需要保留第一个 lead_id 并删除任何其他重复项。

因此,在此示例中,我需要找到重复的电子邮件值并删除所有行。 IE。删除所有 lead_id 为 40944 的行并保留所有 40943。

id      |   lead_id     | form  |field_number   |   value
--------+---------------+-------+---------------+----------------------
537618  |   40943       |1      | 3.3           |   Mike
537622  |   40943       |1      | 4.3           |   Mesa
537623  |   40943       |1      | 4.4           |   AZ
537624  |   40943       |1      | 4.5           |   85210
537625  |   40943       |1      | 4.6           |   United States
537626  |   40943       |1      | 5             |   mike@email.com
537627  |   40943       |1      | 6             |   (555) 555-5555
537628  |   40943       |1      | 19            |   JM-SL-I4CLR,JM-FM-I5CLR
537629  |   40943       |1      | 12            |   2015-10-01
547618  |   40944       |1      | 3.3           |   Mike
547622  |   40944       |1      | 4.3           |   Mesa
547623  |   40944       |1      | 4.4           |   AZ
547624  |   40944       |1      | 4.5           |   85210
547625  |   40944       |1      | 4.6           |   United States
547626  |   40944       |1      | 5             |   mike@email.com
547627  |   40944       |1      | 6             |   (555) 555-5555
547628  |   40944       |1      | 19            |   JM-SL-I4CLR,JM-FM-I5CLR
547629  |   40944       |1      | 12            |   2015-10-01

我试过了:

SELECT `value`, count(*) 
 FROM `lead_detail` 
 WHERE `field_number` = 5 
 GROUP BY `value` 
 HAVING count(*) > 1

结果

value          |    count(*)
---------------+------------------
mike@email.com |    2

只是不确定如何删除行?

最佳答案

您可以使用与此类似的东西来简单地做到这一点。我自己用过它并成功完成了工作..

DELETE t1 FROM lead_detail t1, lead_detail t2 
WHERE t1.id > t2.id AND t1.field_number = t2.field_number

而且您还可以根据需要自由扩展/更改 where 部分(仅在需要时)。

关于MySQL重复具有不同ID的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38237622/

相关文章:

Mysql删除子查询

mysql - 使用 where 子句合并 2 个 sql 语句

java - Eclipse - 如何打开 sql 文件?

php - mySQL 删除时出现意外标记

sql - 获取删除的记录数sql

php - 使用php从MySQL中的两个连接表中删除信息

mysql - MySQL 行是否有全局启用/禁用?

javascript - Django 将 JSON 数据传递给静态 getJSON/Javascript

sql - T-Sql算法问题

java - jooQ spring boot 多模式(读写分离)