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

Usuwanie zduplikowanych wierszy z tabeli

Tak, zakładając, że masz pole unikalnego identyfikatora, możesz usunąć wszystkie rekordy, które są takie same z wyjątkiem identyfikatora, ale nie mają „minimalnego identyfikatora” dla swojej grupy wartości.

Przykładowe zapytanie:

DELETE FROM Table
WHERE ID NOT IN
(
SELECT MIN(ID)
FROM Table
GROUP BY Field1, Field2, Field3, ...
)

Uwagi:

  • Swobodnie wybrałem „Tabela” i „ID” jako reprezentatywne nazwy
  • Lista pól („Pole1, Pole2,...”) powinna zawierać wszystkie pola z wyjątkiem identyfikatora
  • To może być powolne zapytanie w zależności od liczby pól i wierszy, jednak spodziewam się, że byłoby w porządku w porównaniu z alternatywami

EDYCJA:W przypadku, gdy nie masz unikalnego indeksu, zalecam po prostu dodanie automatycznego przyrostowego unikalnego indeksu. Głównie dlatego, że jest to dobry projekt, ale także dlatego, że pozwoli Ci uruchomić powyższe zapytanie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie zmiennej env w application.properties Spring Boot

  2. Znaki zapytania MySQL db zamiast znaków hebrajskich..?

  3. Docker:Połącz wiele obrazów

  4. Wyszukaj MySQL i zamień tekst w polu

  5. Zamykanie połączeń JDBC w puli