这篇文章主要介绍了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查找删除重复数据并只保留一条实例详解,希望能帮助到大家,谢谢大家对本站的支持!

    无相关信息
最新资讯
YouTube原创内容下月起面向所有用户免费

YouTube原创内容下月

据科技网站TechSpot报道,谷歌旗下视频网站YouTube今日
谷歌停止一项用户数据共享服务 担心遭监管部门调查

谷歌停止一项用户数据

路透社今日援引知情人士的消息称,由于担心遭到监管部门
中概股早盘普涨:爱奇艺涨9.02% 百度涨7.42%

中概股早盘普涨:爱奇艺

美股盘中,中概股普涨。截止北京时间21.55,百度涨6.41%,爱
特朗普周末表示不愿与华为公司做生意? 外交部回应

特朗普周末表示不愿与

外交部发言人耿爽表示,关于华为问题,我们多次说过,中美企
美国将华为临时采购许可证延长90天

美国将华为临时采购许

据俄罗斯卫星通讯社报道,美国商务部长威尔伯·罗斯表示
“达达-京东到家”回应赴美上市:不予置评

“达达-京东到家”回

今日有消息称,“达达-京东到家”计划于明年赴美上市,拟
最新文章
浅谈PHP SHA1withRSA加密生成签名及验签

浅谈PHP SHA1withRSA

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

PHP实现对数字分隔加

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

PHP生成指定范围内的N

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

PHP实现的数据对象映

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

使用ucenter实现多站

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

PHP中单例模式的使用

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