ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
业务里, 要把一批数据导入现在使用的表里, 导入后有很多重复的, 要根据某个唯一字段去重(非主键),如果同一条数据有很多条相同, 需要多次执行 大的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 ); ```