Deletando registros duplicados no banco de dados / Zigue Blog

Deletando registros duplicados no banco de dados

de EriTecgames | 24/08/2016

images/2016/08/deletando-registros-duplicados-no-banco-de-dados.png

Deletando registros duplicados no banco de dados

    ção de dados de algumas tabelas de cadastro (telefones, hobbies, interesses, formações e etc.) para uma única tabela diferenciando-os pelo id do usuário e o id do campo. O problema é que meu script acabou duplicando as informações. Para a minha sorte isso aconteceu em um banco de desenvolvimento, onde era possível apagar os dados da tabela, ajustar os scripts e refazer a migração. Eu não queria ter esse trabalho novamente e logo resolvi pesquisar um script sql que me ajudasse a apagar os registros duplicados, nesse caso deixando apenas o último registro gravado.

    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, utilizaremos o seguinte comando:

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

    Perceba que no comando sql após o FROM eu chamo duas vezes a tabela “nomes”, mas as diferencio pelas letras a e b. Você poderia dar o nome que quisesse. Note também que depois do WHERE eu faço a comparação entre as colunas, verificando a duplicidade e depois digo que o id de “a” deve ser menor que o de “b”. Dessa forma o MySql vai comparar todos os registros com o mesmo nome e apagar aqueles que contenham o menor id.

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

    Veja na prática como acontece:

    Tabelas com os registros duplicados

    tableless-select-mysql

    Aplicando o script descrito acima:

    tableless-mysql-script-delete

    Caso queira apagar todos os registros duplicados, deixando apenas os registros únicos é só trocar o “<” por “!=”

    veja um exemplo:

    tableless-mysql-script-deletall

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

    fonte;

KeyWords Deletando ,registros ,duplicados ,no ,banco ,de ,dados ,Precisei ,fazer ,a ,migração ,de ,dados ,de ,algumas ,tabelas ,de ,cadastro ,(telefones, ,hobbies, ,interesses, ,formações ,e ,etc.) ,para ,uma ,única ,tabela ,diferenciando-os ,pelo ,id ,do ,usuário ,e ,o ,id ,do ,campo. ,O ,problema ,é ,que ,meu ,script ,acabou ,duplicando ,as ,informações. ,Para ,a ,minha ,sorte ,isso ,aconteceu ,em ,um ,banco... ,

Veja Tambem

Deixe seu comentário

Quer ter um site como este?