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

usuń zduplikowane wiersze na podstawie wartości jednej kolumny

Jest to podobne do zapytania Gordona Linoffa, ale bez podzapytania:

DELETE t1 FROM table t1
  JOIN table t2
  ON t2.refID = t1.refID
  AND t2.ID < t1.ID

Wykorzystuje sprzężenie wewnętrzne do usuwania tylko wierszy, w których znajduje się inny wiersz o tym samym identyfikatorze refID, ale niższym identyfikatorze.

Zaletą unikania podzapytania jest możliwość wykorzystania indeksu do wyszukiwania. To zapytanie powinno działać dobrze z indeksem wielokolumnowym na refID + ID.



  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 LOWER() w MySQL

  2. Jaki jest optymalny numer zapytania MYSQL w skrypcie php?

  3. mysql - Optymalizacja ORDER BY COALESCE na połączonej kolumnie tabeli

  4. Czy użytkownicy 'User'@'%' i 'User'@'localhost' to nie to samo?

  5. Amazon EC2, mysql przerywa start, ponieważ InnoDB:mmap (x bajtów) nie powiodło się; errno 12