MySQLで重複したレコードデータ(ダブリレコード)を抽出する方法を2つ紹介します。
方法1の方が簡単ですが、用途によって使い分けてください。
MySQLで重複レコードを抽出する方法
方法1:重複があるかどうかだけ知りたい場合
1 2 3 4 | SELECT * FROM テーブル名 GROUP BY カラム1[, カラム2, カラム3, …] HAVING COUNT(*) >= 2; |
重複しているレコードのどれかひとつだけ抽出されます。
方法2:重複しているレコードどちらも表示されたい場合
1 2 3 4 5 6 | SELECT * FROM テーブル名 WHERE (カラム1 [, カラム2, カラム3, …]) in ( SELECT カラム1 [, カラム2, カラム3, …] FROM テーブル名 GROUP BY カラム1 [, カラム2, カラム3, …] HAVING COUNT(*) >= 2 ); |
重複レコード全て抽出されます。
共通説明
- カラムには、ダブりを調べるカラム名を入れます。
- カラム指定は最低1つ。それ以上の場合はカンマ区切りで指定します。
- HAVING COUNT(*) >= の後の数字は、ダブリの数。
例えば、3つ以上ダブっているレコードを抽出するには、「3」にします。 - サンプルにはありませんが、クエリの最後に、ORDER BYでソートすると抽出結果が見やすくなります。
phpMyAdminの検索機能では、こういったことはできないので上記のコマンドを入力しましょう。