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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-29 13:51:14223ブラウズ

How Can I Delete Duplicate Rows from a Table Without Creating a New One?

新しい行を作成せずにテーブルから重複行を削除する

テーブルを作成せずに削除したい重複レコードを持つテーブルがあります。新しいテーブル。これは、次の方法で実現できます。

まず、テーブルに一意の ID フィールドが含まれていると仮定します。 L1_name、L2_name など、ID を除くすべてのフィールドの値を比較して、重複レコードを特定します。

重複を特定したら、重複値に一致するが、重複グループ内の最小 ID とは異なる ID。

この概念をquery:

DELETE FROM Table
WHERE ID NOT IN
(
  SELECT MIN(ID)
  FROM Table
  GROUP BY L1_name, L2_name, L3_name, ...
)

「Table」と「ID」を実際のテーブル名と ID フィールド名に置き換えてください。さらに、GROUP BY 句のフィールドのリストには、ID を除くすべてのフィールドが含まれている必要があります。

このクエリは、追加のテーブルを作成することなく、重複レコードを効率的に削除します。パフォーマンスは、関連するフィールドと行の数に応じて変化する可能性があることに注意してください。

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

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