MySQLでテーブル内の重複データを削除の方法

重複データをテーブルから削除するには、次の手順に従う。

  1. 最初に、SELECT文を利用して、テーブルから重複データを見つけ出しましょう。重複したレコードを見つけるためにGROUP BY句とHAVING句を使用できます。たとえば、以下のクエリはテーブル内のname列の重複したレコードを返します:
  2. SELECT name, COUNT(*) AS count
    FROM table_name
    GROUP BY name
    HAVING count > 1;
  3. 次に、DELETE文で重複レコードを削除します。INNER JOIN句を使用して重複レコードを元のテーブルと結合し、重複レコードを削除できます。次に例を示します。このクエリでは、テーブル内の重複する「name」列のレコードが削除されます。
  4. 同じレコードを複数持つ名前のレコードを削除します。
    “`
    DELETE t1
    FROM table_name t1
    INNER JOIN (
    SELECT name, MIN(id) AS min_id
    FROM table_name
    GROUP BY name
    HAVING COUNT(*) > 1
    ) t2 ON t1.name = t2.name AND t1.id > t2.min_id;
    “`
  5. 誤って削除しないようデータのバックアップをお取りになってから、削除操作を実行してください。
bannerAds