SQL如何删除重复的数据行- -
delete from table where id in (
select max(id) from table group by name having count(*)>1
)--删除重复记录中ID最大的一条(如果有2条以上的重复记录则需多次执行)
如果table数据完全一样,可以先将数据导入到一个临时表内
或
delete from table where id not in (
select min(id) from table group by name
)--只保留重复记录的第一条(id最小的一条)
使用临时表:
insert into temptable select min(id),name from aoptest group by name having count(*)>1
delete from aoptest
insert into aoptest select * from temptable
drop table temptable
删除表中多余的重复记录,重复记录是根据单个字段(peopleName )来判断,只留有peopleId 最小的记录
delete from people
where peopleName in (select peopleName from people group by peopleName having count(peopleName) > 1)
and peopleId not in (select min(peopleId) from people group by peopleName having count(peopleName )>1)
delete from table where id in (
select max(id) from table group by name having count(*)>1
)--删除重复记录中ID最大的一条(如果有2条以上的重复记录则需多次执行)
如果table数据完全一样,可以先将数据导入到一个临时表内
或
delete from table where id not in (
select min(id) from table group by name
)--只保留重复记录的第一条(id最小的一条)
使用临时表:
insert into temptable select min(id),name from aoptest group by name having count(*)>1
delete from aoptest
insert into aoptest select * from temptable
drop table temptable
删除表中多余的重复记录,重复记录是根据单个字段(peopleName )来判断,只留有peopleId 最小的记录
delete from people
where peopleName in (select peopleName from people group by peopleName having count(peopleName) > 1)
and peopleId not in (select min(peopleId) from people group by peopleName having count(peopleName )>1)