sql >> Databáze >  >> RDS >> Mysql

Odstranění duplicitních řádků z tabulky

Chcete-li zkontrolovat, co se chystáte smazat:

SELECT distinct t1.*
  FROM yourtable as t1
  join yourtable as t2
 WHERE t1.address = t2.address
   and t1.id < t2.id

Pokud jste s tím spokojeni:

DELETE t1
  FROM yourtable as t1
  join yourtable as t2
 WHERE t1.address = t2.address
   and t1.id < t2.id

Tímto způsobem uchováte záznam s maximální hodnotou ve sloupci id



  1. O výhodách tříděných cest

  2. Jak zacházet s MAX() prázdné tabulky jako s 0 namísto NULL

  3. innodb_lock_wait_timeout zvýšit časový limit

  4. Použijte spojení nebo spojení – co je rychlejší