sql >> Database >  >> RDS >> Mysql

Dubbele records verwijderen zonder een tijdelijke tabel te maken

Hier is een interne oplossing (maar geen one-liner)

Ontdek max id:

select max(id) as maxid 
  from shop;

Onthoud deze waarde. Laten we zeggen dat het gelijk is aan 1000;

Unieke waarden opnieuw invoeren, met offset:

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

Oude waarden laten vallen:

delete from shop
  where id <= 1000;

Herstel normale ID's:

update shop
  set id = id - 1000;

WINST!



  1. Wat is een één-op-één relatie in een database?

  2. MySQL selecteert de datum van gisteren

  3. Het aantal rijen met een bepaalde waarde ophalen na het filteren van de query via de datumkiezer

  4. PHP + MySQL-wachtrij