MySQL データベースのテーブルの重複レコードを削除したい。
その画像IDは自動インクリメントですが、customer_invoice_idを一意にしたいのですが、重複したレコードを削除したいです。EG 1104 レコードを削除したいのですが、このクエリで最新のレコードである 1105 を削除します。
ALTER IGNORE TABLE table ADD UNIQUE KEY idx1(customer_invoice_id);
MySQL データベースのテーブルの重複レコードを削除したい。
その画像IDは自動インクリメントですが、customer_invoice_idを一意にしたいのですが、重複したレコードを削除したいです。EG 1104 レコードを削除したいのですが、このクエリで最新のレコードである 1105 を削除します。
ALTER IGNORE TABLE table ADD UNIQUE KEY idx1(customer_invoice_id);
LEFT JOIN を使用して削除するだけで、より高い ID を持つ重複を見つけることができます。
DELETE i1
FROM invoices i1
LEFT JOIN invoices i2
ON i1.customer_id = i2.customer_id
AND i1.customer_invoice_id = i2.customer_invoice_id
AND i1.id < i2.id
WHERE i2.customer_invoice_id IS NOT NULL
いつものように、インターネット上のランダムな人から更新/削除を実行する前に、データをバックアップしてください:)