这篇文章主要介绍了mysql查找删除重复数据并只保留一条实例详解的相关资料,需要的朋友可以参考下

有这样一张表,表数据及结果如下:

school_idschool_nametotal_studenttest_takers1239Abraham Lincoln High School55501240Abraham Lincoln High School70351241Acalanes High School120891242Academy Of The Canyons30301243Agoura High School89401244Agoura High School10050

我们可以看出,school_name的字段值有重复数据(Abraham Lincoln High School 和Agoura High School分别出现两次),那么如何删除这两条数据,从而只让这两个数值出现一次呢? 具体实现方法如下:

1、删除重复记录,保存Id最小的一条

delete FROM `test` WHERE `school_name` in (SELECT `school_name`
FROM `test` 
GROUP BY `school_name` 
HAVING COUNT( * ) >1) and school_id not in (select min(school_id) from test group by school_id having count(* )>1)

先使用GROUP BY having语法查询出重复的数据,然后删除重复数据并保留school_id最小的一条.

2、删除重复记录,保存Id最大的一条

delete FROM `test` WHERE `school_name` in (SELECT `school_name`
FROM `test` 
GROUP BY `school_name` 
HAVING COUNT( * ) >1) and school_id not in (select max(school_id) from test group by school_id having count(* )>1)

原理和上面一样。

以上就是mysql查找删除重复数据并只保留一条实例详解,希望能帮助到大家,谢谢大家对本站的支持!

    无相关信息
最新资讯
一张图看懂HUAWEI Mate30系列手机最全亮点

一张图看懂HUAWEI Mat

心动了吗?
京东智谷携手三大运营商 共建5G+智慧产业园区

京东智谷携手三大运营

京东智谷鸟瞰图京东智谷供图2019年省重大预备项目、市
华为面向企业市场推沃土数字平台 助力产业数字化

华为面向企业市场推沃

在华为全联接大会期间,华为面向企业市场正式发布数字平
扎克伯格今日宴请6名参议员 向立法者示好?

扎克伯格今日宴请6名

Facebook CEO马克·扎克伯格(Mark Zuckerberg)于当地时
微软股价再创历史新高 总市值达10800亿美元

微软股价再创历史新高

微软盘中涨幅扩大至2%,总市值升至10800亿美元,创历史新
华为联手保时捷设计推出Mate30 RS保时捷设计手机

华为联手保时捷设计推

和往年Mate系列一样,这次华为也联合了保时捷设计推出Ma
最新文章
浅谈PHP SHA1withRSA加密生成签名及验签

浅谈PHP SHA1withRSA

这篇文章主要介绍了PHP SHA1withRSA加密生成签名及验
PHP实现对数字分隔加千分号的方法

PHP实现对数字分隔加

今天小编就为大家分享一篇关于PHP实现对数字分隔加千
PHP生成指定范围内的N个不重复的随机数

PHP生成指定范围内的N

今天小编就为大家分享一篇关于PHP生成指定范围内的N个
PHP实现的数据对象映射模式详解

PHP实现的数据对象映

这篇文章主要介绍了PHP实现的数据对象映射模式,结合实
使用ucenter实现多站点同步登录的讲解

使用ucenter实现多站

今天小编就为大家分享一篇关于使用ucenter实现多站点
PHP中单例模式的使用场景与使用方法讲解

PHP中单例模式的使用

今天小编就为大家分享一篇关于PHP中单例模式的使用场