删除除第一个以外的所有重复项 mysql

Delete all duplicates except first one mysql

我有一个 table,其列 serial_number 重复了几次。我将如何删除除第一个重复项之外的整行? 通过以下,我可以 select 所有重复项。但是不能删除。

SELECT serial_number, COUNT(*) FROM trademark_merge GROUP BY serial_number HAVING COUNT(*) > 1

假设您的 table 的主键是 id,您可以将其表述为 delete/join 查询,例如:

delete tm
from trademark_merge tm
inner join (
    select serial_number, min(id) id
    from trademark_merge 
    group by serial_number 
) tm1 on tm.serial_number = tm1.serial_number and tm.id > tm1.id