Mysql
 sql >> Base de données >  >> RDS >> Mysql

Suppression des enregistrements SQL en double pour autoriser une clé unique

En réponse à votre commentaire, voici une requête qui fonctionne dans MySQL :

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

Cela ne supprimerait que les lignes en double. La inner join filtrera la dernière ligne pour chaque produit, même s'il n'existe aucune autre ligne pour le même produit.

PS Si vous essayez d'aliaser la table après FROM , MySQL vous demande de spécifier le nom de la base de données, comme :

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