sql >> Base de Datos >  >> RDS >> Mysql

Cómo eliminar duplicados en la tabla MySQL

Muchos caminos conducen a Roma. Este es uno. Es muy rápido. Así que puedes usarlo con grandes bases de datos. No olvides los índices. El truco es:haz que phoneNo sea único y usa "ignorar".

drop table if exists bkPhone_template;
create table bkPhone_template (
         phoneNo varchar(20),
         firstName varchar(20),
         lastName varchar(20)
 );

insert into bkPhone_template values('0783313780','Brady','Kelly');
 insert into bkPhone_template values('0845319792','Mark','Smith');
 insert into bkPhone_template values('0834976958','Bill','Jones');
 insert into bkPhone_template values('0845319792','Mark','Smith');
 insert into bkPhone_template values('0828329792','Mickey','Mouse');
 insert into bkPhone_template values('0834976958','Bill','Jones');

drop table if exists bkPhone;
create table bkPhone like bkPhone_template;
alter table bkPhone add unique (phoneNo);

insert  ignore into bkPhone (phoneNo,firstName,lastName) select phoneNo,firstName,lastName from bkPhone_template;

drop table bkPhone_template;

Si la tabla de datos ya existe, solo tiene que ejecutar una selección de creación de tabla con una siguiente selección de ignorar inserción. Al final, debe ejecutar algunas declaraciones de cambio de nombre de tabla. Eso es todo.

Esta solución es mucho, mucho más rápida que una operación de eliminación.