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查找删除重复数据并只保留一条实例详解,希望能帮助到大家,谢谢大家对本站的支持!
热门推荐
9 家长会简短祝福语
10 女儿生日简短祝福语幽默
11 66红包祝福语简短的
12 亲人喜得贵子祝福语简短
13 班级群祝福语简短大全
14 初三新年祝福语简短
15 新年祝福语2026最简短
16 拜年年祝福语大全简短
17 酒仙网红包祝福语简短
18 给弟弟的祝福语简短