Remover linhas duplicadas no MySQL

77
duplicate row 02
duplicate row 02

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….