方法1
delete yourtable
where [id] not in (
select max([id]) from yourtable
group by (name + value))
方法2
delete a
from 表 a left join(
select (id) from 表 group by name,value
)b on a.id=b.id
where b.id is null
查詢及刪除重復記錄的sql語句
查詢及刪除重復記錄的sql語句
1、查找表中多余的重復記錄,重復記錄是根據單個字段(peopleid)來判斷
select * from people
where peopleid in (select peopleid from people group by peopleid having count(peopleid) > 1)
2、刪除表中多余的重復記錄,重復記錄是根據單個字段(peopleid)來判斷,只留有rowid最小的記錄
delete from people
where peopleid in (select peopleid from people group by peopleid having count(peopleid) > 1)
and rowid not in (select min(rowid) from people group by peopleid having count(peopleid )>1)
3、查找表中多余的重復記錄(多個字段)
select * from vitae a
where (a.peopleid,a.seq) in (select peopleid,seq from vitae group by peopleid,seq having count(*) > 1)
1 2 3 4