Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Usuń zduplikowane wpisy w tabeli MySQL

Możesz to całkiem łatwo zrobić, wybierając to zapytanie do innej tabeli, a następnie zmieniając jego nazwę, aby zastąpić oryginał.

CREATE TABLE `table2` (
  `name` varchar(255), 
  `email` varchar(255), 
  UNIQUE KEY `email` (`email`));
INSERT INTO `table2` SELECT `name`, DISTINCT(`email`) FROM `table`;
RENAME TABLE `table` TO `table1`;
RENAME TABLE `table2` TO `table`;

Zauważ, że to CREATE należy dostosować do aktualnego formatu tabeli. Dodałem unikalny klucz w polu e-mail jako sugestię, jak w pierwszej kolejności zapobiegać duplikatom.

Alternatywnie możesz to zrobić w pętli

DELETE FROM `table` 
WHERE `email` IN (
  SELECT `email` FROM `table` GROUP BY `email` HAVING count(*) > 1
) LIMIT 1

Co usunęłoby jeden zduplikowany rekord na rozmowę. Ważne jest, aby nie usuwać obu wierszy w przypadku duplikatów



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa funkcja REGEXP_LIKE() w MySQL

  2. Wydrukuj losowy wiersz z zapytania mysql

  3. MySql:Jak wywołać procedurę składowaną przed deklaracją instrukcji

  4. Znajdowanie rekordu z maksymalną wartością w SQL

  5. Tworzysz niestandardową funkcję MySQL?