mysql 对比表 fj 和表 ml ,删除ml里和fj相同的数据

mysql 对比表 fj 和表 ml ,删除ml里和fj相同的数据,第1张

delete from 表名 a where 字段1,字段2 in

(select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) >1)

上面的语句非常简单,就是将查询到的数据删除掉。不过这种删除执行的效率非常低,对于大数据量来说,可能会将数据库吊死。所以我建议先将查询到的重复的数据插入到一个临时表中,然后对进行删除,这样,执行删除的时候就不用再进行一次查询了。

第一个

update mingxing set classid = 2 where sex='男'

第二个

update mingxing set dantu = null where tuku is not null or tuku = ''

如果你的表结构设计的比较严谨的话,比如当前表table是有主键ID,

先把第一个重复值选出来: select min(id) from table group by a,b having count(*) >1

然后删除重复的记录: delete from table where id >(select min(id) from table group by a,b having count(*) >1)

如果你的表设计的不严谨,比如没有ID这个可供 *** 作的主键,那就只能在where后面多一些条件直到找出唯一的筛选方法。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8711814.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存