删除除第一个以外的所有重复项 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
我有一个 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