sql刪除重複記錄只保留一條

91hero發表於2021-05-12

查詢重複記錄

select 欄位名 from 表名 where 欄位名 in (
    select 欄位名  from 表名 group by 欄位名  having count(1) >= 2
) ORDER BY  欄位名

查詢出所有重複記錄並且刪除多餘的只保留一條

delete from 表名
where 
重複欄位名 in (
    SELECT a.重複欄位名from(
    select 重複欄位名
    from 表名
    group by 重複欄位名 having count(1) > 1
    ) a
)
and 
id(只保留id最小的一個) not in (
SELECT b.id from(
    select min(id) as id
    from 表名 
    group by 重複欄位名 having count(1)>1
    ) b
)
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章