当前位置: 首页 > news >正文

mysql实现删除某一列的重复数据(只留一行或全部删除)

事例数据库

其中  第一列为id(主键),弟2列为file_id,弟3列为file_name

 

只包留一行

我们要想删除掉重复的数据

弟一步

先筛选出来哪些数据重复了

我们可以先将表中的数据以目标字段(这里是file_id)进行分组聚类,然后找出每一组的最小ID(或最大ID)并将这些ID放入一个临时表t(可以随意命名这里是t)中

于是我们就有了以下代码

id:表的主键

klx.file_id_name:表名

file_id:包含重复项的字段

SELECT t.id FROM ((select MIN(id) id from klx.file_id_name group by file_id) as t)

弟2步

通过第1步,我们已经找出了各行中最大的id值,并将它放到一个临时表t中了

这时候我们就可以想到,如果有一项是重复两次或以上的,那么此项应该有两个或以上不同的id值

而我们临时表存的只是最小的那个id值,反过来,如果有一项是不重复的,那么它应该有唯一的一个id值,并且这个id值,也一定是最小的id值,也一定在我们的临时表t中

于是:

其中关键字印是判断file_id_name表中的id是否在临时表t之中,如果不存在则将此项删除,这样我们就过滤掉了重复的项

DELETE FROM file_id_name WHERE id not in(SELECT t.id FROM ((select MIN(id) id from klx.file_id_name group by file_id) as t))

 结果截图

重复的全部删除(一项都不留)

代码如下

DELETE FROM WHERE SELECT t.file_id,t.count_ FROM ((select file_id,COUNT(file_id) count_ from klx.file_id_name group by file_id) as t) where t.count_>1

相关文章:

  • 数学建模十大算法01-蒙特卡洛算法(Monte Carlo)
  • 智能家居相关企业达2万余家,湖南智能家居发展将进入快车道
  • java计算机毕业设计高校学生社团管理源码+数据库+系统+lw文档+mybatis+运行部署
  • Flutter: FutureBuilder 组件的使用
  • CAS(Compare and swap)比较并交换算法解析
  • 大学生如何搭建属于自己的微信查题公众号
  • 如何采用Python读取一个图像
  • 查题搜题公众号怎么制作?
  • torch.Tensor
  • 网课答案公众号题库API
  • linux时间编程
  • 大学网课搜题公众号题库系统
  • java计算机毕业设计基于安卓Android的学生作业管理系统APP
  • MySQL-0-概述-介绍和安装以及MySQL数据模型
  • Linux内存管理(二十三):kswapd(2)
  • 分享一款快速APP功能测试工具
  • ➹使用webpack配置多页面应用(MPA)
  • Android交互
  • eclipse(luna)创建web工程
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Git的一些常用操作
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Python进阶细节
  • 成为一名优秀的Developer的书单
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 工作中总结前端开发流程--vue项目
  • 基于组件的设计工作流与界面抽象
  • 力扣(LeetCode)357
  • 如何进阶一名有竞争力的程序员?
  • 深入浏览器事件循环的本质
  • 我从编程教室毕业
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 正则表达式-基础知识Review
  • #100天计划# 2013年9月29日
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (16)Reactor的测试——响应式Spring的道法术器
  • (3)nginx 配置(nginx.conf)
  • (AngularJS)Angular 控制器之间通信初探
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • ***检测工具之RKHunter AIDE
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net mvc部分视图
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .Net环境下的缓存技术介绍
  • .NET简谈设计模式之(单件模式)
  • .NET是什么
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录