管理重複行:保留最舊的提交
重複資料會嚴重影響任何資料庫的完整性和可用性。在這種情況下,我們的目標是根據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中文網其他相關文章!