mysql-查询删除重复数据

最近因为生产上的代码问题,导致数据库表中的数据存在多条一样的数据,代码修复后需要对这些脏数据进行删除。如下表A(三条重复数据):

IDNAMEAGEMOBILE
1张三28130021102xx
2张三28130021102xx
3张三28130021102xx
4李四19159000011xx
5李四19159000011xx

 

 

 

 

 

1、通过SQL语句查询出重复数据:

SELECT NAME FROM A GROUP BY NAME HAVING COUNT(NAME)>1;

 

2、删除掉重复行数据,保留一条:

DELETE FROM A WHERE NAME IN (SELECT NAME FROM (SELECT NAME FROM A GROUP BY NAME HAVING COUNT(*)>1) aa)

AND ID NOT IN (SELECT ID FROM (SELECT MIN(ID) ID FROM A GROUP BY NAME HAVING COUNT(*)>1) bb);

注意:2中的sql表别名是必须的,不用别名的话会报错。原因没有去细究。

 

转载于:https://www.cnblogs.com/big-xuzhou/p/8710823.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值