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

odstranit duplicitní řádky na základě hodnoty jednoho sloupce

Toto je podobné dotazu Gordona Linoffa, ale bez dílčího dotazu:

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

Toto používá vnitřní spojení k odstranění pouze řádků, kde existuje další řádek se stejným refID, ale nižším ID.

Výhodou vyhnutí se poddotazu je možnost využít pro vyhledávání index. Tento dotaz by měl fungovat dobře s vícesloupcovým indexem na refID + ID.



  1. MySQL, Zkontrolujte, zda v tabulce s SQL existuje sloupec

  2. Datum v adrese URL dd/mm/rrrr

  3. Únikové znaky jako $ a % | MySQL a PHP

  4. Ve Sparku nebyl nalezen žádný vhodný ovladač pro jdbc