数据库删除完全重复的数据,针对每条重复的数据只保留一条

本文介绍了一种处理数据库中完全重复记录的方法。通过创建一个临时表并使用SQL语句进行去重,最终替换原有表来解决主键约束缺失导致的数据冗余问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出现脏数据有时是很头疼的事情,特别是数据比较多,而且表结构比较复杂的。

最近就遇到一个奇葩问题,数据库主键约束不知道被谁删掉了,然后数据库中就出现了很多完全一样的数据,当然这里也包括主键,因为主键约束都被删除了,肯定可以存储id完全一样的数据。

之前遇到过有重复数据,但是不是完全一样,所以这次不能完全按照之前的做法去处理。

这次采用了另外一种方法,那就是创建一个临时表,表结构和重复的数据表结构一样。

比如脏数据的表名为test_bad_data,则去创建一个和test_bad_data表结构完全一样的test_bad_data2

接下来就是要写数据的时候了。

使用下面的语句即可,实现原理就是在脏数据表中根据group by 关键字进行去重,然后再把数据添加到新的空表中,然后再把表名改为之前的即可。

【这个方案只适合数据完全一样的情况,假如个别字段的值不完全一样,可以更新为完全一样即可】

insert into test_bad_data2(colA,colB) select colA,colB from test_bad_data group by colA,colB

执行这个后,test_bad_data2 中的数据将不会出现重复了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值