在保留原創性的同時消除重複行
問題:
問題:維護資料性至關重要,通常,使用者提交的內容可能會出現重複的條目。在基於特定欄位(例如訂閱者電子郵件)存在重複條目的情況下,目標是消除這些重複項,僅保留原始條目。如何在不訴諸表交換的情況下有效地實現這一點?
答案:<code class="sql">delete x from myTable x join myTable z on x.subscriberEmail = z.subscriberEmail where x.id > z.id</code>
由於表包含每行的唯一標識符,因此可以使用簡單的方法採用:
解釋:此查詢利用唯一ID 的存在來識別原始記錄。透過使用subscriberEmail 欄位將資料表與自身連接並根據ID 進行過濾,它可以有效地將重複記錄標記為ID 高於原始記錄的記錄。然後刪除這些標記的重複項。 要進一步增強查詢效能,請考慮在subscriberEmail 欄位上使用索引。這樣可以確保根據該欄位快速檢索記錄,使查詢更有效率。透過將subscriberEmail列宣告為UNIQUE索引列,它還可以幫助防止將來插入重複的條目。以上是如何消除重複行,同時保留表格中的原始條目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!