在没有 CTE 的情况下删除 MySql 中的多行

Delete multiple rows in MySql without CTE

我有一个包含大约 7000 辆汽车的数据库,但不幸的是,只有大约 1000 辆是唯一的。我可以删除所有重复的行吗?

架构如下所示:

谢谢!

这是一种方法:

delete t1
from mytable t1
inner join mytable t2
    on  t2.brand = t1.brand
    and t2.model = t1.model
    and t2.id < t1.id

这将删除 (brand, model) 上的重复项,同时保留 ID 最小的那个。