Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Excluir registros duplicados sem criar uma tabela temporária


Aqui está uma solução no local (mas não uma linha)

Descubra o id máximo:
select max(id) as maxid 
  from shop;

Lembre-se deste valor. Digamos que seja igual a 1000;

Reinsira valores exclusivos, com deslocamento:
insert into shop (id, tax_id) 
select distinct id + 1000, tax_id 
  from shop;

Elimine valores antigos:
delete from shop
  where id <= 1000;

Restaurar IDs normais:
update shop
  set id = id - 1000;

LUCRO!