Mysql如何删除id相同的重复数据

在亿博娱乐平台开户运维中,数据库中有时候会出现多条id重复的数据,想删除重复id,又没有找到很好的解决办法,本文是结合实际情况记录并描述,操作数据库请备份数据,以免操作不可逆,造成意外损失。

在网络上看到多种删除方式,但是运行会报错,给需要解决此问题的人。

20210607103214.jpg

解决办法:

首先查看一下表中是否有重复数据

SELECT id,COUNT(*) FROM 表名
GROUP BY id 

HAVING COUNT(*) > 1;

查看一下一共有多少重复数据,删除重复数据的语句:

20210607103401.jpg

DELETE FROM 表名 WHERE 
id IN (
 SELECT id FROM (
SELECT id,COUNT(*) FROM 表名
GROUP BY id 
HAVING COUNT(*) > 1
 ) AS a

) LIMIT 条数;

limit表示你要删除的条数,由于删除语句的执行速度比较慢,如果数据较多建议设定一个条数,比如先删除1000或者10000条。否则数据过大的话,mysql执行太慢会崩溃,心急去关闭再执行的话,会发生锁表。无法操作数据库。

解表操作:

1、查进程,主要是查找被锁表的那个进程的ID

SHOW PROCESSLIST;

2、kill掉锁表的进程ID

KILL   10866;//后面的数字即时进程的ID

【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息发邮件至honmau@qq.com,我们将及时沟通与处理。本站内容除非来源注明鸿茂传媒,否则均为网络转载,涉及言论、版权与本站无关。点击进入客服处理
热门推荐
鸿茂传媒官方店
乐清生活网抖音号