極其簡單的資料庫資料去重方式
阿新 • • 發佈:2021-01-14
- 首先根據需要的條件(groub by後的欄位為我們去重條件欄位)查出重複資料:
SELECT * FROM house_item a GROUP BY a.label,a.parent_code,a.`code`,a.unit,a.floor,a.house_number HAVING count( * ) > 1)
- 因為限定了count(*)>1條件,所以我們如果把查出來的刪除,定然是會預設留一條的,直到返回影響條數為0即去重完畢,單次執行完整sql如下:
DELETE FROM house_item WHERE id IN( SELECT a.id FROM (SELECT * FROM house_item a GROUP BY a.label,a.parent_code,a.`code`,a.unit,a.floor,a.house_number HAVING count( * ) > 1) a)
- 遞迴這個操作直到 Affected rows為0即完成去重,實現方式自定,業務程式碼或者其他方式自選。