首頁  >  文章  >  資料庫  >  如何根據訂閱者電子郵件刪除重複行,同時保留最舊的提交?

如何根據訂閱者電子郵件刪除重複行,同時保留最舊的提交?

Linda Hamilton
Linda Hamilton原創
2024-11-03 15:10:30559瀏覽

How do I remove duplicate rows based on subscriberEmail while keeping the oldest submission?

刪除重複行,同時保留最舊的提交

要根據subscriberEmail字段消除重複行,同時保留原始提交,請按照以下提交步驟操作步驟:

<code class="sql">delete x
from myTable x
join myTable z on x.subscriberEmail = z.subscriberEmail
where x.id > z.id;</code>

說明:

  • 此查詢使用join 子句將表格與自身連結。這將創建表的兩個實例,別名為“x”和“z”。
  • where 子句比較兩個實例的 id 值。實例「x」中 id 大於實例「z」中對應行的行表示重複提交。
  • 刪除語句識別實例「x」中的這些重複行並將其從表中刪除。
  • 結果是一個包含唯一訂閱者電子郵件的表格,其中每封電子郵件僅保留原始提交(具有最低 ID)地址。

附加說明:

  • 為了防止將來出現重複,請考慮在subscriberEmail 欄位上建立唯一索引。
  • 上面的查詢可以透過組合 join 和 where 來簡化子句:
<code class="sql">delete x
from myTable x
join myTable z
on x.subscriberEmail = z.subscriberEmail and x.id > z.id;</code>

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

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