对于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;