刪除表裡重複資料

u014249394發表於2017-02-03
  • 介紹

使用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) 4、刪除表中多餘的重複記錄(多個欄位),只留有rowid最小的記錄 delete   from   vitae   a where   (a.peopleId,a.seq)   in     (select   peopleId,seq   from   vitae   group   by   peopleId,seq   having   count(*)   >   1) and   rowid   not   in   (select   min(rowid)   from   vitae   group   by   peopleId,seq   having   count(*)> 1) 5、查詢表中多餘的重複記錄(多個欄位),不包含rowid最小的記錄 select   *   from   vitae   a where   (a.peopleId,a.seq)   in     (select   peopleId,seq   from   vitae   group   by   peopleId,seq   having   count(*)   >   1) and   rowid   not   in   (select   min(rowid)   from   vitae   group   by   peopleId,seq   having   count(*)> 1)


檢視原文:http://surenpi.com/2017/02/03/%e5%88%a0%e9%99%a4%e8%a1%a8%e9%87%8c%e9%87%8d%e5%a4%8d%e6%95%b0%e6%8d%ae/

相關文章