最も古い送信を保持しながら、subscriberEmail に基づいて重複行を削除するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-03 15:10:30
オリジナル
556 人が閲覧しました

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」というエイリアスを持つテーブルの 2 つのインスタンスが作成されます。
  • where 句は、2 つのインスタンスの ID 値を比較します。インスタンス "z" の対応する行よりも大きい ID を持つインスタンス "x" の行は、重複した送信を表します。
  • 削除ステートメントは、インスタンス "x" 内のこれらの重複行を識別し、テーブルから削除します。
  • 結果は一意の購読者の電子メールを含むテーブルになり、各電子メール アドレスに対して元の送信 (ID が最も低い) のみが残ります。

追加メモ:

  • 今後の重複を防ぐには、subscriberEmail 列に UNIQUE インデックスを作成することを検討してください。
  • 上記のクエリは、join 句と where 句を組み合わせることで簡素化できます。
<code class="sql">delete x
from myTable x
join myTable z
on x.subscriberEmail = z.subscriberEmail and x.id > z.id;</code>
ログイン後にコピー

以上が最も古い送信を保持しながら、subscriberEmail に基づいて重複行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート