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:
