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

Odstranění duplicitních záznamů SQL pro povolení jedinečného klíče

V odpovědi na váš komentář je zde dotaz, který funguje v MySQL:

delete YourTable
from YourTable
inner join YourTable yt2
on YourTable.product_id = yt2.product_id
and YourTable.id < yt2.id

Tím by se odstranily pouze duplicitní řádky. inner join odfiltruje nejnovější řádek pro každý produkt, i když pro stejný produkt žádné jiné řádky neexistují.

P.S. Pokud se pokusíte vytvořit alias tabulky za FROM , MySQL vyžaduje, abyste uvedli název databáze, například:

delete <DatabaseName>.yt
from YourTable yt
inner join YourTable yt2
on yt.product_id = yt2.product_id
and yt.id < yt2.id;


  1. Spouštěče MySQL nemohou aktualizovat řádky ve stejné tabulce, ke které je spouštěč přiřazen. Navrhované řešení?

  2. Je pozice sloupce id v Postgresql důležitá?

  3. Advanced SQL:Variace a různé případy použití T-SQL Insert Statement

  4. jQuery Autocomplete Mysql PHP