多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
业务里, 要把一批数据导入现在使用的表里, 导入后有很多重复的, 要根据某个唯一字段去重(非主键),如果同一条数据有很多条相同, 需要多次执行 大的id是后导入的, 之前的保留, SQL代码是, 先group和MAX, HAVING 分组并把有2条及以上重复数据的找到最大的字段,找到后进行删除, 由于同一张表, 不能直接 delete的时候直接in同一张表(会报错 xxx for update in FROM clause 等错误), 需要中间转一道。 ``` DELETE FROM 表 WHERE id IN ( SELECT a.id FROM ( SELECT MAX( id ) id FROM 表 GROUP BY 字段 HAVING COUNT( 字段)> 1 ) a ); ```