mysql では、count() 関数を使用して、繰り返しフィールドをクエリできます。この関数は、指定した条件の結果を返すことができます。構文は、「SELECT フィールド値 COUNT(*) as count FROM table name GROUP BY」です。フィールド値のカウントが 1 を超えています。」
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
#mysql で重複フィールドをクエリする方法#例 accountinfo テーブルのデータは次のとおりです:
シナリオ 1 単一フィールドの重複データの検索と重複排除
上記の表の単一フィールドのアカウント フィールドで同じデータを検索する必要があります。
このアイデアは 3 つのステップで簡単に説明されています。
最初のステップ
重複データを見つけるために、最初に考えることは、それは重複しているため、次に次のことです。繰り返しであっても、数値は 1 より大きくなります。それがカウント関数です。
チェックしたいのは単一のフィールド勘定科目であるため、勘定科目フィールドのディメンションに従ってグループ化する必要があります。それが機能別のグループです。
最初のステップで作成した mysql ステートメントは次のとおりです:
SELECT account ,COUNT(account) as count FROM accountinfo GROUP BY account;
クエリ結果は次のとおりです:
2 番目のステップ
はい、やはり、カウントが 1 より大きいデータはアカウント A と B のデータです。
次に、少しフィルタリングして、カウントが 1 より大きいデータのアカウントのみを見つけます。
2 番目のステップでは、フィルター条件を結合する必要があります。記述された mysql ステートメントは次のとおりです。
SELECT account FROM accountinfo GROUP BY account HAVING COUNT(account) > 1;
クエリの結果は次のとおりです。
3 つのステップ
#重複するアカウント データ A と B が見つかりました。次に、アカウント A と B を一緒に使用して他のデータをクエリするだけです。
つまり、2 番目のステップで見つかったデータをサブクエリ条件として使用し、IN 関数を使用します。
3 番目のステップで記述された mysql ステートメントは次のとおりです:
SELECT * FROM accountinfo WHERE account IN ( SELECT account FROM accountinfo GROUP BY account HAVING COUNT(account) > 1 );
クエリの結果は次のとおりです:
重複したデータは除外されました。
推奨学習:
mysql ビデオ チュートリアル以上がmysqlで重複フィールドをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。