查询mysql数据库中重复的字段并删除其中一条记录

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

查询数据库表中重复的字段sql语句:

    Select *,Count(*) From tableName Group By fieldName(字段名称) Having Count(*) > 1


删除重复记录其中的一条

delete from tableName where id IN(1,2,3)


这两条语句配合来使用,查询语句查询出来的结果可以这样:

Select id From sim Group By imsi Having Count(*) > 1

把结果集放入删除语句后就可以了,不过如果这样写会报错:

delete from sim where id IN(Select id From sim Group By imsi Having Count(*) > 1)

这样执行sql语句会报:[Err] 1093 - You can't specify target table 'sim' for update in FROM clause  这个错误,建议先在代码里执行查询语句,然后将结果集处理后,放入删除语句中执行,就能执行删除了


需要注意的是,每次只能删除一条记录哦,如果有2条以上重复记录,执行多次就行了!


转载于:https://my.oschina.net/hehongbo/blog/470761

你可能感兴趣的:(查询mysql数据库中重复的字段并删除其中一条记录)