【问题标题】:Delete all duplicates except first one mysql删除除第一个mysql之外的所有重复项
【发布时间】:2021-01-28 01:44:45
【问题描述】:

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

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

【问题讨论】:

  • 顺便说一下,创建一个新表通常更快,只保留您想要保留的行。

标签: mysql sql duplicates sql-delete


【解决方案1】:

假设您的表的主键是id,您可以将其表述为删除/加入查询,例如:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 2013-03-23
    • 2011-06-08
    • 2018-12-04
    相关资源
    最近更新 更多