Remover linhas duplicadas no MySQL

Se em seu banco de dados houver linhas de dados repetidas ou linhas de dados duplicadas, você poderá remover a duplicação facilmente usando um script MySQL.

Neste artigo, aprenderemos a remover linhas de dados duplicadas do MySQL usando um script que será executado com o phpMyAdmin.

Preparar tabela de dados de amostra

Antes de começarmos, configure uma tabela chamada ” duplicate_row ” com a seguinte estrutura e dados:

duplicate row 01
CREATE TABLE `duplicate_row` (
  `id` int(11) DEFAULT NULL,
  `refID` int(11) DEFAULT NULL,
  `data` varchar(7) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 PACK_KEYS=0;

INSERT INTO `duplicate_row` (`id`, `refID`, `data`) VALUES
(1, 3526, 'aaaaaaa'),
(2, 3527, 'bbbbbbb'),
(3, 3528, 'ccccccc'),
(4, 3529, 'ddddddd'),
(5, 3527, 'eeeeeee'),
(6, 3528, 'fffffff'),
(7, 3527, 'ggggggg');
COMMIT;

Remover linhas duplicadas usando DELETE JOIN

  1. Abra o phpMyAdmin e selecione o nome do banco de dados na tabela ” duplicate_row ” . Em seguida, clique na guia ” SQL “. Em seguida, copie o script a seguir.
DELETE t1 FROM duplicate_row t1
  JOIN duplicate_row t2
  ON t2.refID = t1.refID
  AND t2.id < t1.id
  1. Em seguida, clique no botão ” Go ” para executar o script.
duplicate row 02
  1. O script removerá todas as linhas duplicadas e manterá a linha com o menor “id”.
duplicate row 04
  1. Para alterar os critérios de exclusão, altere o script na ” AND section t2.id < t1.id ” de acordo com o que você deseja.

Boa sorte…

Espero que seja útil….

Últimos artigos