Mysql
 sql >> Database >  >> RDS >> Mysql

Come eliminare i duplicati nella tabella MySQL

Molte strade portano a Roma. Questo è uno. È molto veloce. Quindi puoi usarlo con grandi database. Non dimenticare gli indeces. Il trucco è:rendi unico phoneNo e usa "ignore".

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;

Se la tabella di dati esiste già, devi solo eseguire una selezione di tabella di creazione con un inserimento successivo, ignora la selezione. Alla fine devi eseguire alcune istruzioni di ridenominazione delle tabelle. Questo è tutto.

Questa soluzione è molto, molto più veloce di un'operazione di eliminazione.