删除某张表中的重复数据

工作需求:删除一个表中,订单id和产品id都相同的重复数据。具体要求灵活应变,原理都一样。

本次项目使用的是MySQL,使用其他数据库需自行简单调整下。

1.首先查看是否含有重复的数据,使用分组实现。

select order_id,product_id,count(*)
from product_commit
group by order_id,product_id 
having count(*)>1

2.备份表,以免删除错误(千万在测试环境验证后再去生产环境操作)。

create table bak_product_comment_181119
as
select * from product_comment;
或者
create table bak_product_comment_181119
like product_comment;//创建表结构

insert into bak_product_comment_181119
select * from product_comment;

3.执行删除sql语句,删除重复数据。

delete a
from product_comment a
join(
select order_id,product_id,min(comment_id) as comment_id
from product_comment
group by order_id,product_id
having count(*)>=2
) b 
on a.order_id=b.order_id 
and a.product_id=b.product_id
and a.comment_id > b.comment_id

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值