Mysql
 sql >> Database >  >> RDS >> Mysql

Rimozione di record SQL duplicati per consentire una chiave univoca

In risposta al tuo commento, ecco una query che funziona in MySQL:

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

Ciò rimuoverebbe solo le righe duplicate. Il inner join filtrerà l'ultima riga per ogni prodotto, anche se non esistono altre righe per lo stesso prodotto.

PS Se provi ad alias la tabella dopo FROM , MySQL richiede di specificare il nome del database, ad esempio:

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