ホームページ >データベース >mysql チュートリアル >一時テーブルを使用せずに MySQL で重複レコードを削除する方法は?

一時テーブルを使用せずに MySQL で重複レコードを削除する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-01 13:09:11863ブラウズ

How to Remove Duplicate Records in MySQL Without Using Temporary Tables?

一時テーブルを使用しない重複レコードの削除

MySQL テーブルで重複レコードに直面すると、一時テーブルが非現実的であることが判明する状況や、望ましくない。この記事では、一意の各レコードの単一インスタンスを保持しながら重複を排除するための代替ソリューションを検討します。

1 つのアプローチは、一意のインデックスを活用することです。レコード (member_id、quiz_num、question_num、answer_num) を一意に識別する列に一意のインデックスを追加することで、重複行の挿入を防ぎ、一意の値のセットごとに 1 つの行のみが存在するようにします。

< pre>ALTER IGNORE TABLE TableA
一意のインデックスを追加 (member_id、quiz_num、question_num、 Answer_num);

または、テーブルに主キーを追加し、クエリを利用して重複レコードを選択的に削除することもできます:

DELETE FROMメンバー <br>WHERE id IN (SELECT *</p>
<pre class="brush:php;toolbar:false">         FROM (SELECT id FROM member 
               GROUP BY member_id, quiz_num, question_num, answer_num HAVING (COUNT(*) > 1)
              ) AS A
        );

サブクエリ内で COUNT(*) > 1 条件を使用することにより、クエリは、それぞれの一意の組み合わせ内で複数回出現する行を識別します。 member_id、quiz_num、question_num、answer_num の重複行の id 列を使用して、それらの行を見つけてメンバーから削除します。 table.

これらのアプローチは、一時テーブルに依存せずに重複レコードを削除する効率的で信頼性の高い方法を提供し、データの整合性を確保し、パフォーマンスへの影響を最小限に抑えます。

以上が一時テーブルを使用せずに MySQL で重複レコードを削除する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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