」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何刪除重複行同時保留最舊的提交?

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

發佈於2024-11-08
瀏覽:695

 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,我們可以比較同一表中的行。具體來說,我們在subscriberEmail欄位上連接x和z,有效地建立一個自連接。

where子句執行關鍵的過濾。它消除了 x 中 id 欄位大於 z 中對應 id 欄位的記錄。這可確保僅將非原始(重複)提交作為刪除目標。

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

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

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3