SQL

SQL,查找并删除重复的数据

对于DB中有的时候会经常有些重复的数据(这就是为什么需要设置主键或约束条件的原因),

  • 如何查出重复的数据,针对某个primary_key 找出重复的数据

select primary_key,count(0) n from tb

group by primary_key

having count(primary_key)>1;

以上的primary_key可以扩展为一个或多个,需要自行修改下count..

  • 对于删除重复的数据,我所推荐的是如下sql,

delete from tb where primary_key not in (select max(id) from tb group by col1,col2,col3…);

  • 以下方法我不推荐,tb数据少的时候可以用,多的时候,会影响性能

select distinct * into tmp_tb from tb;
delete from tb;
insert into tb select * from tmp_tb;

 

Pls call me CPP.
Posts created 150

发表评论

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top