ホームページ > データベース > mysql チュートリアル > 新しい行を作成せずにテーブルから重複行を効率的に削除するにはどうすればよいですか?

新しい行を作成せずにテーブルから重複行を効率的に削除するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-02 15:16:39
オリジナル
899 人が閲覧しました

How to Efficiently Delete Duplicate Rows from a Table Without Creating a New One?

テーブルからの重複行の削除: 効率的なアプローチ

データベース内のデータの冗長性は、不正確さや非効率を引​​き起こす可能性があります。したがって、データの整合性を維持するには、重複したレコードを削除することが不可欠です。個別のエントリのみを含む新しいテーブルを作成することもできますが、新しいテーブルを作成せずに既存のテーブルから重複エントリを削除する直接的なアプローチを検討します。

id、action、およびL11_データ。 id は行ごとに一意であり、L11_data はそれぞれのアクション フィールド内で一意であり、アクションは業界を表します。目標は、L11_data 内のそれぞれの業界の重複する企業名を削除することです。

これを達成するには、一意の ID フィールドを利用して重複する行を特定し、削除します。次のクエリは、新しいテーブルを作成せずに冗長なレコードを効率的に削除します。

DELETE FROM Table
WHERE ID NOT IN
(
SELECT MIN(ID)
FROM Table
GROUP BY Field1, Field2, Field3, ...
)
ログイン後にコピー

このクエリでは、Table は既存のテーブルを表し、ID は一意の識別子フィールドです。 GROUP BY で指定されたフィールドのリストには、ID を除くすべてのフィールドが含まれます。

このクエリの効率は、テーブル内のフィールドと行の数に依存することに注意することが重要です。ただし、ほとんどの実際的なシナリオでは、適切に機能するはずです。

さらに、テーブルに一意のインデックスがない場合は、インデックスを追加することを強くお勧めします。これにより、データの整合性が強化されるだけでなく、上記のクエリを効率的に実行できるようになります。

以上が新しい行を作成せずにテーブルから重複行を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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