ホームページ > データベース > mysql チュートリアル > SQL テーブル内の複数のフィールドに基づいて重複行を見つける方法

SQL テーブル内の複数のフィールドに基づいて重複行を見つける方法

DDD
リリース: 2025-01-23 01:57:11
オリジナル
646 人が閲覧しました

How to Find Duplicate Rows Based on Multiple Fields in a SQL Table?

SQL の複数のフィールドを使用した重複レコードの検索

単一の列に基づいて重複エントリを特定するのは、単純な SQL タスクです。 たとえば、users テーブルで重複するメールを検索するには:

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

メールアドレスや名前など、複数のフィールドにわたる重複を特定する場合、複雑さが増します。

メールアドレスと名前の組み合わせが同一の行を特定するには、次のクエリを使用します。

SELECT name, email, COUNT(*)
FROM users
GROUP BY name, email
HAVING COUNT(*) > 1;
ログイン後にコピー

これは、nameemail の両方でデータをグループ化し、複数のエントリを持つグループのみを表示するようにフィルター処理して、重複を明らかにします。

仕組み:

HAVING 句は重要です。グループ化された結果をフィルター処理して、複数回出現する nameemail の組み合わせのみが返されるようにします。 一般的な出力は次のようになります:

<code>| name | email       | COUNT(*) |
|------|-------------|----------|
| Tom   | john@example.com | 2        |
| Tom   | tom@example.com  | 2        |</code>
ログイン後にコピー

重要な考慮事項:

データベース システムでは、非集計列のグループ化の処理が異なります。 一部の場合は、GROUP BY 句に明示的に含める必要があります。 データベース システムがこの暗黙的なグループ化をサポートしていない場合は、それに応じてクエリを調整する必要があります。

以上がSQL テーブル内の複数のフィールドに基づいて重複行を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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