mysqlで重複データを削除する

WBOY
リリース: 2023-05-13 20:30:07
オリジナル
16183 人が閲覧しました

MySQL はリレーショナル データベース管理システムであり、世界で最も人気のあるオープン ソース データベースの 1 つです。実際の業務ではデータの重複が発生することが多く、その場合にはデータのクリーニングや重複排除を行う必要がありますが、MySQL では重複データを削除するためのさまざまな方法が用意されています。この記事では、重複データを削除するための一般的なテクニックをいくつか紹介します。

1. DISTINCT を使用して重複データを削除します

MySQL には、結果セットから重複行を削除できる DISTINCT キーワードが用意されています。 DISTINCT キーワードは、SELECT ステートメントで使用できます。例:

SELECT DISTINCT column1,column2,column3 FROM table_name;
ログイン後にコピー

このステートメントは、column1、column2、column3 で構成される一意の結果セットを返します。ただし、このメソッドで削除できるのは同一の行のみであるため、テーブル内にほとんど同じデータが含まれ、いくつかの列だけが異なる行が 2 行ある場合、DISTINCT メソッドは重複データを削除できません。このとき、GROUP BY メソッドを使用する必要があります。

2. GROUP BY を使用して重複データを削除する

GROUP BY は MySQL の集計関数の重要な部分であり、データをグループ化するときに重複データを削除するのにも役立ちます。 GROUP BY を使用する場合、グループ化の基準として 1 つ以上の列を指定する必要があります。例:

SELECT column1,column2 FROM table_name GROUP BY column1,column2;
ログイン後にコピー

このステートメントは、column1 と column2 で構成される一意の結果セットを返します。 GROUP BY は通常、グループ化されたデータの統計分析を実行するために、集計関数 COUNT、SUM、AVG などと一緒に使用されます。

3. HAVING を使用して重複データを削除する

HAVING は MySQL の GROUP BY ステートメントの拡張機能で、グループ化後にデータをフィルタリングできるようにします。場合によっては、列に 1 回だけ表示されるデータを削除する必要があります。これは、HAVING ステートメントを使用して実行できます。

SELECT column1,COUNT(column2) FROM table_name GROUP BY column1 HAVING COUNT(column2) > 1;
ログイン後にコピー

このステートメントは、列 1 と列 2 で構成される結果セットを返します。ここで、列 2 のデータの出現数は 1 より大きくなります。 COUNT 関数を使用すると、列内の各要素の出現数をカウントし、HAVING によって条件を満たさないデータを除外して、重複データを削除するという目的を達成できます。

4. サブクエリを使用して重複データを削除する

サブクエリは、MySQL の複雑なクエリの問題を解決する効果的な方法です。重複データを削除する場合、サブクエリを使用することもできます。例:

DELETE FROM table_name WHERE column1 IN (SELECT column1 FROM table_name GROUP BY column1 HAVING COUNT(*) > 1);
ログイン後にコピー

このステートメントは、column1 に 1 回だけ出現するデータを削除します。まず、サブクエリは GROUP BY ステートメントと HAVING ステートメントを使用して、column1 が 1 より多く出現するデータをフィルターで除外し、次に IN キーワードを使用して、削除操作で削除するデータ範囲を指定します。なお、削除操作はテーブル内のデータを直接削除し、復元することができないため、慎重に操作する必要があります。

概要:

この記事の導入を通じて、DISTINCT、GROUP BY、HAVING、サブクエリの使用など、MySQL で重複データを削除するいくつかの方法について学びました。実際の作業では、データの品質と処理効率を向上させるために、特定のシナリオに応じて適切な方法を選択して重複データをクリーンアップおよび重複排除する必要があります。

以上がmysqlで重複データを削除するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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