最も古いエントリを保持したままテーブル内の重複行を削除するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-29 09:21:29
オリジナル
222 人が閲覧しました

How to Remove Duplicate Rows in a Table While Keeping the Oldest Entry?

最も古いエントリを保持しながら重複する行を削除する

ユーザー送信データを含むテーブルでは、subscriberEmail フィールドに基づいて重複エントリが蓄積されています。データの整合性を確保するには、元の送信を保持しながらこれらの重複行を削除する必要があります。

解決策:

<code class="sql">delete x 
from myTable x
join myTable z on x.subscriberEmail = z.subscriberEmail
where x.id > z.id</code>
ログイン後にコピー

説明:

  • Self-Join: クエリは myTable テーブルに対して自己結合を実行し、テーブルの 2 つの別個のインスタンス (エイリアス "x" および "z") を作成します。
  • 比較条件: 結合は、subscriberEmail 列に基づいて「x」と「z」の行を照合し、各行を他のすべての行と効果的に比較します。
  • フィルタリング: where 句は、id 列の値が「z」の対応する行の id 値より大きい行を「x」から選択します。これにより、より高い ID 値を持つ重複行が識別されます。
  • 削除: 削除ステートメントは、「x」で識別された重複行を削除し、元の送信のみを残します。

追加の考慮事項:

今後の重複挿入を防ぐために、subscriberEmail 列に UNIQUE インデックスを作成することを検討してください。これにより、テーブル内の電子メール アドレスの一意性が強制されます。

以上が最も古いエントリを保持したままテーブル内の重複行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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