コメントへの返信として、MySQLで機能するクエリは次のとおりです。
delete YourTable
from YourTable
inner join YourTable yt2
on YourTable.product_id = yt2.product_id
and YourTable.id < yt2.id
これにより、重複する行のみが削除されます。 inner join
同じ商品の他の行が存在しない場合でも、各商品の最新の行を除外します。
P.S. FROM
の後にテーブルのエイリアスを作成しようとした場合 、MySQLでは、次のようにデータベースの名前を指定する必要があります。
delete <DatabaseName>.yt
from YourTable yt
inner join YourTable yt2
on yt.product_id = yt2.product_id
and yt.id < yt2.id;