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

MySQL 中删除重复的数据并只保留一条

为了避免改变原来的数据 ID,我们可以使用一个不同的方法,通过使用自连接来标记重复的数据并删除多余的记录。这种方法在保留原始 ID 的情况下删除重复记录。

假设你的表结构如下:

表名:your_table
列名:id (主键), column1, column2, 以及其他列。
你可以使用以下 SQL 语句来删除重复记录,只保留一条(通常是保留 ID 最小的那一条):

-- Step 1: 标记要删除的重复记录
DELETE t1
FROM your_table t1
INNER JOIN your_table t2 
WHERE t1.id > t2.idAND t1.column1 = t2.column1AND t1.column2 = t2.column2;-- Step 2: 确认删除成功,查看剩余数据
SELECT * FROM your_table;


解释:

标记要删除的重复记录:我们使用自连接 INNER JOIN 来找到重复的记录,并且使用 WHERE t1.id > t2.id 来确保只删除 id 较大的记录,从而保留 id 最小的记录。
确认删除成功:通过 SELECT 语句查看剩余的数据,确保删除操作正确。
这个方法的优点是:

不会改变原始数据的 ID。
保留每组重复记录中 ID 最小的一条记录。
操作简单且高效。

相关文章:

  • Pandas和matplotlib实现同期天气温度对比
  • 【计算机网络 - 基础问题】每日 3 题(二十三)
  • ArcGIS Desktop使用入门(三)常用工具条——拓扑(下篇:地理数据库拓扑)
  • 【机器学习】13-决策树2——决策树生成、剪枝
  • Ubuntu上如何优雅下载huggingface上某个gguf模型文件
  • 解决 ValueError: did not find HDF5 headers----安装netCDF4报错
  • Elasticsearch分布式搜索引擎入门
  • Anaconda虚拟环境创建和配置以使用PyTorch和DGL
  • 机器学习课程学习周报十三
  • LLM - 使用 XTuner 指令微调 多模态大语言模型(InternVL2) 教程
  • OJ在线评测系统 后端 判题机模块预开发 架构分析 使用工厂模式搭建
  • 【在Linux世界中追寻伟大的One Piece】进程间通信
  • Rapid品牌SSL证书通配符单域名申请窍门
  • 背景图鼠标放上去切换图片过渡效果
  • docker笔记_数据卷、挂载
  • canvas 高仿 Apple Watch 表盘
  • fetch 从初识到应用
  • PHP那些事儿
  • Redis 懒删除(lazy free)简史
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 机器学习 vs. 深度学习
  • 力扣(LeetCode)56
  • 全栈开发——Linux
  • 使用agvtool更改app version/build
  • 算法-图和图算法
  • Mac 上flink的安装与启动
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​Java并发新构件之Exchanger
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​Python 3 新特性:类型注解
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • (1)SpringCloud 整合Python
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)基于IDEA的JAVA基础12
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)详解PHP处理密码的几种方式
  • (转载)Linux 多线程条件变量同步
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • ****Linux下Mysql的安装和配置
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .libPaths()设置包加载目录
  • .Net Core 生成管理员权限的应用程序
  • .NET MVC第五章、模型绑定获取表单数据
  • .net(C#)中String.Format如何使用
  • .NET/C# 的字符串暂存池
  • :=
  • ;号自动换行
  • @font-face 用字体画图标
  • @hook扩展分析
  • [ Socket学习 ] 第一章:网络基础知识