• (31) 99973-2709
  • hugomoraismendes@gmail.com

MySQL – Apagando registro duplicados

MySQL – Apagando registro duplicados

Registro duplicados em base de dados é um problema que pode te dar uma dor de cabeça, abaixo segue uma proposta de solução para resolver esse problema.

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:

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

Aplicando o script descrito acima:

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

Hugo Mendes

×

Table of Contents