Để trả lời nhận xét của bạn, đây là một truy vấn hoạt động trong MySQL:
delete YourTable
from YourTable
inner join YourTable yt2
on YourTable.product_id = yt2.product_id
and YourTable.id < yt2.id
Điều này sẽ chỉ loại bỏ các hàng trùng lặp. inner join
sẽ lọc ra hàng mới nhất cho mỗi sản phẩm, ngay cả khi không có hàng nào khác cho cùng một sản phẩm.
P.S. Nếu bạn cố đặt bí danh cho bảng sau FROM
, MySQL yêu cầu bạn chỉ định tên của cơ sở dữ liệu, như:
delete <DatabaseName>.yt
from YourTable yt
inner join YourTable yt2
on yt.product_id = yt2.product_id
and yt.id < yt2.id;