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 生日广州男生祝福语简短