Banco de dados 4 visualizações

Como identificar e remover registros duplicados em uma tabela MySQL

Ver no WHMCS

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

  1. Entre no cPanel da sua hospedagem

    Para isso, acesse painel.gehost.com.br e faça login com suas credenciais.

    Tela de login do cPanel com campos Usuário e Senha
  2. Acesse o phpMyAdmin

    No painel, localize e clique em phpMyAdmin (dentro da seção "Banco de Dados").

    Painel inicial do cPanel com o ícone phpMyAdmin destacado
  3. Escolha o banco de dados

    Na barra lateral esquerda, clique no nome do banco de dados onde está a tabela com duplicatas.

  4. Localize a tabela com registros duplicados

    Na lista de tabelas do banco, clique no nome da tabela que você quer verificar (ex: clientes).

  5. 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 nome e email mais 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
    );
  6. 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).

  7. 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 clientes pelo nome da sua tabela, e id pelo 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.

  8. 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 BackupBackup Completo.
  • Use chaves únicas no banco: no phpMyAdmin, vá em Índices e defina campos como email ou cpf como 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.

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.