sql >> Databáze >  >> RDS >> Mysql

Jak odstranit duplikáty v tabulce MySQL

Do Říma vede mnoho cest. Tohle je jeden. Je to velmi rychlé. Můžete jej tedy použít s velkými databázemi. Nezapomeňte na indexy. Trik je:udělejte phoneNo jedinečným a použijte „ignorovat“.

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;

Pokud datová tabulka již existuje, musíte pouze spustit výběr vytvoření tabulky s následujícím výběrem ignorování vložení. Na konci musíte spustit několik příkazů pro přejmenování tabulek. To je vše.

Toto řešení je mnohem, mnohem rychlejší než operace odstranění.



  1. JSON v SQL Server

  2. Co je SQLite

  3. Jak opravit chyby nesouladu verzí pg_dump?

  4. Průsečíky SQL a ukázky