mysql查找删除重复数据并只保留一条实例详解
有这样一张表,表数据及结果如下:
school_id
school_name
total_student
test_takers
1239
AbrahamLincolnHighSchool
55
50
1240
AbrahamLincolnHighSchool
70
35
1241
AcalanesHighSchool
120
89
1242
AcademyOfTheCanyons
30
30
1243
AgouraHighSchool
89
40
1244
AgouraHighSchool
100
50
我们可以看出,school_name的字段值有重复数据(AbrahamLincolnHighSchool和AgouraHighSchool分别出现两次),那么如何删除这两条数据,从而只让这两个数值出现一次呢?具体实现方法如下:
1、删除重复记录,保存Id最小的一条
deleteFROM`test`WHERE`school_name`in(SELECT`school_name` FROM`test` GROUPBY`school_name` HAVINGCOUNT(*)>1)andschool_idnotin(selectmin(school_id)fromtestgroupbyschool_idhavingcount(*)>1)
先使用GROUPBYhaving语法查询出重复的数据,然后删除重复数据并保留school_id最小的一条.
2、删除重复记录,保存Id最大的一条
deleteFROM`test`WHERE`school_name`in(SELECT`school_name` FROM`test` GROUPBY`school_name` HAVINGCOUNT(*)>1)andschool_idnotin(selectmax(school_id)fromtestgroupbyschool_idhavingcount(*)>1)
原理和上面一样。
以上就是mysql查找删除重复数据并只保留一条实例详解,希望能帮助到大家,谢谢大家对本站的支持!
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短