ホームページ  >  記事  >  データベース  >  1 つのインスタンスを保持したまま、MySQL データベース内の重複エントリを削除するにはどうすればよいですか?

1 つのインスタンスを保持したまま、MySQL データベース内の重複エントリを削除するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-25 12:09:02845ブラウズ

How do I Remove Duplicate Entries in a MySQL Database While Preserving One Instance?

MySQL データベース内の重複エントリの効果的な削除

問題:

データの整合性を維持するには、重複したエントリ。この特定のシナリオでは、一意の ID 列とタイトル列を持つデータベース テーブルに、かなりの数の重複したタイトルが含まれています。目標は、1 つの代表的なエントリを保持しながらすべての重複を削除し、その後 UNIQUE 制約を追加することです。

解決策:

MySQL は、この課題に効率的に対処する強力なコマンドを提供します。

ALTER IGNORE TABLE table ADD UNIQUE KEY idx1(title); 

このコマンドは 2 つの主な機能を提供します:

  1. 一意のキーの追加: 「タイトル」列に一意のキーを追加します。その列内に重複する値は存在できません。
  2. 重複の削除: IGNORE フラグは、新しい一意のキーと競合するすべての行を削除するように MySQL に指示します。その結果、1 行を除くすべての重複行が削除されます。

重要な注意:

特定の MySQL バージョンの InnoDB テーブルの場合、このコマンドで問題が発生する可能性があります。これを解決するには、回答にリンクされている投稿に記載されている回避策を参照してください。

この解決策を実装すると、データベースから重複したタイトルを効果的に削除でき、UNIQUE キーを追加してデータの整合性を確保できるようになります。将来の重複を防ぎます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。