首頁 >資料庫 >mysql教程 >如何刪除MySQL中的重複記錄並保持最新?

如何刪除MySQL中的重複記錄並保持最新?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-16 12:50:03261瀏覽

How to Delete Duplicate Records in MySQL While Keeping the Latest?

刪除MySQL 中的重複記錄,同時保留最新的

在資料庫中,經常會遇到重複記錄,特別是在具有唯一識別符的表中。在 MySQL 中,您可能會遇到電子郵件重複的情況,並且您希望僅保留具有最新 ID 的最新電子郵件。

要解決此問題,我們可以採取以下步驟:

  1. 辨識重複電子郵件:確定表格中多次出現的電子郵件。
  2. 尋找每個重複電子郵件的最新 ID:對於每個重複的電子郵件,檢索最高的 ID,它代表最近插入的內容。
  3. 刪除舊 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn