Como deletar registros duplicados no banco de dados, deixando apenas um

Pessoal, vim deixar um post bem pequeno, mas que foi minha salvação e achei legal compartilhar. Estou em um projeto e acabei precisando fazer uma migração de dados, o problema é que meu script acabou duplicando as informações no banco de dados, imagine o problema, a sorte é que era um banco de desenvolvimento e que eu poderia apagar a tabela e restaurar, mas não queria ter esse trabalho e resolvi pesquisar uma solução.

Vamos ao que interessa, esse script sql ajudará a apagar os registros duplicados no banco de dados, deixando apenas um, o último nesse caso.

Assumindo que você use o banco de dados Mysql e tenha uma tabela chamada “nomes” e que essa tabela tenha os campos id e nome. Essa sintaxe pode ser usada em outros bancos, digite o seguinte comando:

DELETE a FROM nomes AS a, nomes AS b WHERE a.nome=b.nome AND a.id < b.id

Explicando:

nomes: É a tabela com os registros duplicados.
nome: É o campo para comparação dos registros.
id: É a chave primária da tabela.

Caso queira apagar todos os registros duplicados, sem deixar nenhum é só trocar o “<” por “!=”

Pronto! É isso aí pessoal, muito simples né?

anúncio