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