首頁  >  文章  >  資料庫  >  如何刪除重複行同時保留最舊的提交?

如何刪除重複行同時保留最舊的提交?

Linda Hamilton
Linda Hamilton原創
2024-11-01 05:54:27271瀏覽

 How to Delete Duplicate Rows While Keeping the Oldest Submission?

管理重複行:保留最舊的提交

重複資料會嚴重影響任何資料庫的完整性和可用性。在這種情況下,我們的目標是根據subscriberEmail欄位消除重複行,僅保留原始提交。

為了在不訴諸表交換技術的情況下實現這一點,我們可以使用以下SQL查詢:

delete x 
from myTable x
join myTable z on x.subscriberEmail = z.subscriberEmail
where x.id > z.id

此查詢使用表別名的功能。透過為 myTable 表建立別名 x 和 z,我們可以比較同一表中的行。具體來說,我們在訂閱者電子郵件欄位上連接 x 和 z,從而有效地建立自連線。

where 子句執行關鍵的過濾。它消除了 x 中 id 欄位大於 z 中對應 id 欄位的記錄。這可確保只有非原始(重複)提交才會被刪除。

要進一步提高效能,請考慮在subscriberEmail 欄位上實作UNIQUE 索引。這將自動防止將來重複的條目插入您的表中。

透過實現此查詢,您可以有效地刪除重複的行,保留每個電子郵件地址最舊的提交,而無需複雜的表操作或資料重組過程。

以上是如何刪除重複行同時保留最舊的提交?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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