刪除MySQL 中的重複記錄,同時保留最新的
在資料庫中,經常會遇到重複記錄,特別是在具有唯一識別符的表中。在 MySQL 中,您可能會遇到電子郵件重複的情況,並且您希望僅保留具有最新 ID 的最新電子郵件。
要解決此問題,我們可以採取以下步驟:
實作:
考慮以下名為test 的MySQL 表,其中包含id 和email 欄位:
| id | email | |---|---| | 1 | aaa | | 2 | bbb | | 3 | ccc | | 4 | bbb | | 5 | ddd | | 6 | eee | | 7 | aaa | | 8 | aaa | | 9 | eee |
刪除重複的電子郵件並保留最新的電子郵件,我們可以執行以下查詢:
DELETE test FROM test INNER JOIN ( SELECT MAX(id) AS lastId, email FROM test GROUP BY email HAVING COUNT(*) > 1 ) duplic ON duplic.email = test.email WHERE test.id < duplic.lastId;
此查詢檢索重複電子郵件的最新ID,並刪除具有舊ID 的所有重複項。執行查詢後,測試表將如下所示:
| id | email | |---|---| | 3 | ccc | | 4 | bbb | | 5 | ddd | | 8 | aaa | | 9 | eee |
僅保留 ID 最高的最新重複項,滿足維護表中最新電子郵件地址的要求。
以上是如何刪除MySQL中的重複記錄並保持最新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!