sql 删除表中多余的重复记录(多个字段),只保留一条记录
2013-10-15 17:23
561 查看
1.查询重复记录
select * from 表名
where 重复字段 in (select 重复字段 from 表名 group by
重复字段 having count(重复字段) > 1)
2.删除保留一条重复记录
delete from 表名
where 重复字段 in (select 重复字段 from 表名 group by 重复字段 having count(重复字段) > 1)
and ID not in (select min(ID) from 表名 group by 重复字段 having count(重复字段 )>1)
例子: role表中有两个字段,id,name
delete from role
where name in (select a.name from (select name from role group by name having count(name) > 1) a)
and id not in (select b.id from(select min(id) id from role group by name having count(name)>1) b)
select * from 表名
where 重复字段 in (select 重复字段 from 表名 group by
重复字段 having count(重复字段) > 1)
2.删除保留一条重复记录
delete from 表名
where 重复字段 in (select 重复字段 from 表名 group by 重复字段 having count(重复字段) > 1)
and ID not in (select min(ID) from 表名 group by 重复字段 having count(重复字段 )>1)
例子: role表中有两个字段,id,name
delete from role
where name in (select a.name from (select name from role group by name having count(name) > 1) a)
and id not in (select b.id from(select min(id) id from role group by name having count(name)>1) b)
相关文章推荐
- sql 删除表中多余的重复记录(多个字段),只保留一条记录
- sql 删除表中多余的重复记录(多个字段),只保留一条记录
- SQL删除某些字段重复的记录(只保留一条)
- sql 多个字段分组,删除重复记录,保留ID最小的一条
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- SQL删除某些字段重复的记录(只保留一条)
- 【转】SQL删除某些字段重复的记录(只保留一条)
- 如何使用SQL删除某个字段重复的记录,保留其中一条
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- SQL 删除重复记录,并保留其中一条
- ORACLE 删除重复行,保留一条记录SQL
- MySQL按某些字段删除重复记录,只保留一条记录
- SQL 删除表中的重复记录,只保留其中一条。
- sql删除表中重复记录只保留一条记录
- Sql server 删除重复记录的SQL语句保留一条
- sql 删除重复记录,只保留ID号最小(或最大)的一条
- SqlServer-删除某一个字段重复的记录,只保留一条
- sql 查询某个字段值相同及其删除多余值保留不重复那个
- mysql,oracle里删除重复记录,只保留一条(除了自增长字段,其他的字段完全相同为相同记录)
- SQL语句实现删除重复记录并只保留一条