delete from 表名 where id not in (
select tmp.mid
from (
select min(id) mid
from 表名
group by coding, country, ....
) tmp
)
delete from abc where id not in (select min(id) from abc group by code, value)
这种sql会报错, 不能再查询表的同时删除表数据, 需要将子查询的结果放到临时表tmp中.
另外还是建议在业务中过滤此类数据为好
5 回答1.7k 阅读
8 回答1.1k 阅读
4 回答561 阅读✓ 已解决
3 回答939 阅读✓ 已解决
2 回答1.5k 阅读
1 回答777 阅读✓ 已解决
2 回答953 阅读
以上是保留ID较大的。
另外,这种最好在业务层就做好校验,处理好重复数据