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