(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后面多一些条件直到找出唯一的筛选方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)