Como identificar e remover registros duplicados em uma tabela MySQL
Olá, querido cliente da GeHost! 🌟
Se você está aqui, provavelmente encontrou um problema com dados repetidos em uma tabela do seu banco de dados — e isso é mais comum do que parece! Não se preocupe: com um passo a passo claro, você consegue resolver isso com tranquilidade. Sou a Sensei da GeHost, e estou aqui para te guiar com carinho, como se fosse um amigo no seu lado. Vamos juntos?
Antes de começar: entenda o que é um registro duplicado
Imagine uma tabela como uma planilha: cada linha é um registro, e cada coluna é uma informação. Quando duas ou mais linhas têm os mesmos dados importantes (como email, nome ou ID), elas são duplicadas.
Dica do Sensei: Dados duplicados podem causar erros em formulários, relatórios confusos ou até falhas no sistema. Melhor corrigir logo!
Passo a passo: como identificar e remover registros duplicados
-
Entre no cPanel da sua hospedagem
Para isso, acesse painel.gehost.com.br e faça login com suas credenciais.
-
Acesse o phpMyAdmin
No painel, localize e clique em phpMyAdmin (dentro da seção "Banco de Dados").
-
Escolha o banco de dados
Na barra lateral esquerda, clique no nome do banco de dados onde está a tabela com duplicatas.
-
Localize a tabela com registros duplicados
Na lista de tabelas do banco, clique no nome da tabela que você quer verificar (ex:
clientes). -
Identifique os registros duplicados
Use o SQL para ver os dados repetidos. Clique na aba SQL no topo e digite um comando como este:
SELECT nome, email, COUNT(*) as duplicatas FROM clientes GROUP BY nome, email HAVING duplicatas > 1;Esse comando mostra apenas os registros que têm o mesmo
nomeeemailmais de uma vez.Se quiser ver todos os dados duplicados (incluindo IDs), use:
SELECT * FROM clientes WHERE (nome, email) IN ( SELECT nome, email FROM clientes GROUP BY nome, email HAVING COUNT(*) > 1 ); -
Confirme qual registro manter
Se houver duplicatas, escolha qual delas você quer manter. Geralmente, é melhor manter o que tem a data mais recente, ou o ID menor (ou maior, dependendo do seu sistema).
-
Remova os registros duplicados (mantendo um)
Use este SQL para apagar os duplicados, mantendo apenas um de cada grupo:
DELETE t1 FROM clientes t1 INNER JOIN clientes t2 WHERE t1.id > t2.id AND t1.nome = t2.nome AND t1.email = t2.email;Importante: Substitua
clientespelo nome da sua tabela, eidpelo nome da sua chave primária (ex:usuario_id).Esse comando apaga os registros com ID maior, mantendo o de ID menor — ou seja, o primeiro que foi cadastrado.
-
Confirme a limpeza
Volte à tabela e verifique se os duplicados sumiram. Você pode rodar o comando de identificação novamente para ter certeza.
Dicas extras do Sensei
- Backup sempre! Antes de apagar qualquer dado, faça um backup do banco de dados. No cPanel, vá em Backup → Backup Completo.
- Use chaves únicas no banco: no phpMyAdmin, vá em Índices e defina campos como
emailoucpfcomo Unique para evitar novas duplicatas. - Teste em ambiente de desenvolvimento antes de aplicar em produção. Se não tiver, faça backup primeiro!
Quer ajuda extra?
Se ficar com dúvidas, ou se o SQL não funcionar como esperado, não se preocupe. A GeHost está aqui para te ajudar. Entre em contato com nosso suporte — e lembre-se: você tem 30 dias grátis após a entrega para tirar dúvidas!
Seu banco de dados está mais limpo, seu sistema mais saudável, e você, mais tranquilo. 🌿
Com carinho,
Sensei da GeHost
Seu parceiro de tecnologia, sempre ao seu lado.