En respuesta a su comentario, aquí hay una consulta que funciona en MySQL:
delete YourTable
from YourTable
inner join YourTable yt2
on YourTable.product_id = yt2.product_id
and YourTable.id < yt2.id
Esto solo eliminaría las filas duplicadas. La inner join
filtrará la última fila de cada producto, incluso si no existen otras filas para el mismo producto.
PD Si intenta crear un alias para la tabla después de FROM
, MySQL requiere que especifique el nombre de la base de datos, como:
delete <DatabaseName>.yt
from YourTable yt
inner join YourTable yt2
on yt.product_id = yt2.product_id
and yt.id < yt2.id;