Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Löschen Sie doppelte Datensätze, ohne eine temporäre Tabelle zu erstellen

Hier ist eine direkte Lösung (aber kein Einzeiler)

Maximale ID herausfinden:

select max(id) as maxid 
  from shop;

Merken Sie sich diesen Wert. Nehmen wir an, es entspricht 1000;

Eindeutige Werte erneut einfügen, mit Offset:

insert into shop (id, tax_id) 
select distinct id + 1000, tax_id 
  from shop;

Alte Werte löschen:

delete from shop
  where id <= 1000;

Normale IDs wiederherstellen:

update shop
  set id = id - 1000;

PROFITIEREN!