DELETE wb_fmh_copy -- 表名 FROM wb_fmh_copy, -- 表名 ( SELECT min(id) id, -- 查询最小id 并假命名id send_Time, -- 去重依据的字段,下面两个同是, 多个字段依据去重 content, yuanchuang_info FROM wb_fmh_copy -- 表名 GROUP BY send_Time, -- 分组依据字段 content, yuanchuang_info HAVING count(*) > 1 -- 分组后大于数量大于1的 即有重复内容 ) t2 -- t2来代表查询的结果 WHERE wb_fmh_copy.send_Time = t2.send_Time -- 删除判断的条件为 查询的结果 等于 原表中内容的结果 and wb_fmh_copy.content = t2.content and wb_fmh_copy.yuanchuang_info = t2.yuanchuang_info AND wb_fmh_copy.id > t2.id; --必须id为不一样的结果
以上去重为一句去重sql , 修改转载于 https://www.jb51.net/article/129656.htm
简单一句去重sql,撬动整个数据库,就是这么魅力!
------大概流程,和sql意思为
DELETE 表,from 表,t2 where 表.去重字段1 = t2.去重字段1 and ...... and 表.id > t2.id
其中t2 为查询sql语句 分组 重复的 结果集
去重后遗留的问题 如果 id 为自增长的,去重后id将不是完整的顺序-----如何重新自增 让 id 正常顺序-------navicat
删除主键栏位, 重新定义主键id ,并设置默认自增长,,保存打开表后,会发现id会重新排序
简单明了,直接上手,我的理念。