Banco de dados 0 visualizações

Como encontrar e remover registros duplicados numa tabela MySQL

Ver no WHMCS

Como encontrar e remover registros duplicados numa tabela MySQL

Olá, amigo(a) desenvolvedor(a) ou administrador(a) de site! Seja bem-vindo(a) ao nosso Sensei da GeHost — aqui, a gente te ajuda com paciência, clareza e um toque de calor humano. Hoje vamos aprender juntos como encontrar e remover registros duplicados em uma tabela do seu banco de dados MySQL, algo que pode acontecer com frequência quando dados são inseridos manualmente ou por scripts mal configurados.

Se você está lendo isso, provavelmente já percebeu que tem mais de um registro com os mesmos dados — como dois clientes com o mesmo e-mail, ou produtos com o mesmo nome e preço. Isso pode causar erros no seu sistema. Calma! Vamos resolver isso passo a passo, com segurança e sem medo de errar.

Antes de começar: uma pequena dica importante

⚠️ Sempre faça um backup antes de alterar dados importantes! Isso evita surpresas ruins. No cPanel, você pode acessar o Painel do Cliente e usar a ferramenta de Backup para salvar seu banco de dados.

Passo 1: Acesse o phpMyAdmin via cPanel

Para trabalhar com o MySQL, vamos usar o phpMyAdmin, uma ferramenta integrada ao cPanel.

  1. Entre no Painel do Cliente da GeHost.
  2. Localize e clique em cPanel.
  3. Na seção Banco de Dados, clique em phpMyAdmin.
Tela inicial do cPanel com a seção Banco de Dados destacada

Passo 2: Escolha a tabela com registros duplicados

Depois de entrar no phpMyAdmin:

  1. No menu lateral esquerdo, selecione o banco de dados correto (aquele que contém a tabela com os dados duplicados).
  2. Na lista de tabelas do banco, clique no nome da tabela que você quer verificar (ex: clientes, produtos, usuarios).

Passo 3: Encontre os registros duplicados

Vamos usar uma consulta SQL para descobrir quais linhas estão repetidas. Vamos supor que queremos verificar duplicatas com base no campo e-mail na tabela clientes.

  1. Clique na aba SQL no topo do phpMyAdmin.
  2. Insira esta consulta (ajuste o nome da tabela e do campo conforme necessário):
SELECT * FROM clientes
WHERE e-mail IN (
  SELECT e-mail
  FROM clientes
  GROUP BY e-mail
  HAVING COUNT(*) > 1
);

Essa consulta mostra todos os registros que têm o mesmo valor no campo e-mail — ou seja, os duplicados.

Passo 4: Remova os registros duplicados (mantendo apenas um)

Se você viu os registros duplicados, agora vamos removê-los, mas com cuidado: mantemos apenas um deles.

Use esta consulta SQL (novamente, ajuste o nome da tabela e do campo):

DELETE t1 FROM clientes t1
INNER JOIN clientes t2
WHERE t1.id > t2.id AND t1.e-mail = t2.e-mail;

Explicando: Esta consulta apaga apenas os registros duplicados que têm um id maior (ou seja, os mais recentes ou repetidos), mantendo o de menor ID — geralmente o primeiro que foi cadastrado.

⚠️ Dica: Se sua tabela não tiver um campo id auto-incremento, use outro campo único (como nome ou data_criacao) para comparar e decidir qual manter.

Passo 5: Confirme a remoção

Após executar a consulta, o phpMyAdmin vai mostrar uma mensagem como “Rows affected: X”. Isso significa que os registros foram removidos com sucesso.

Para garantir, volte à tabela e verifique se os dados duplicados sumiram.

Como evitar isso no futuro?

Boas práticas ajudam a prevenir duplicatas:

  • Use chaves únicas (Unique Key) nos campos que não podem se repetir (ex: e-mail, CPF, login).
  • Adicione restrições de integridade no banco de dados.
  • Use validações no seu sistema antes de salvar dados.

Quer ajuda extra?

Se ficou com dúvidas, se a consulta não funcionou como esperado, ou se precisar de ajuda com um caso específico, não hesite:

  • Entre no Painel do Cliente.
  • Abra um ticket no Suporte — nossa equipe está aqui para te ajudar, com atenção e cuidado.

Seu banco de dados é como um jardim: com um pouco de cuidado, ele floresce. E você, meu querido(a), é o(a) cuidador(a) mais atencioso(a) que a GeHost já viu. 🌿

Com carinho,
Sensei da GeHost
*Grupo: G e Soluções e Eventos LTDA (CNPJ: 46.647.904/0001-04)*

Precisa de Ajuda?

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