首页 > 数据库 >如何在mysql中删除重复数据

如何在mysql中删除重复数据

时间:2024-08-02 16:20:45浏览次数:8  
标签:删除 min 重复 -- mysql id

#分组去重法 讲重复的列进行分组 之后用min(id) 
#取其中最小的保留,其余的删除
-- 步骤 1: 创建临时表,保存每组最小的ID
CREATE TEMPORARY TABLE tmp_keep_ids AS
SELECT MIN(id) AS id
FROM 重复表名
GROUP BY 重复列;
-- 步骤 2: 删除原表中不在临时表中的记录
DELETE FROM 原表
WHERE id NOT IN (SELECT id FROM 临时表);
-- 步骤 3: 删除临时表
DROP TEMPORARY TABLE tmp_keep_ids;

 ps: 为什么要创建临时表呢?

    因为mysql不允许在删除这张表的时候用这个表作为条件查询,用原来的表做条件是会报错的

   这样做的原理是什么呢?

    在mysql中min()函数是取这列最小值,思路就是,先找到重复的列进行分组,然后用min()函数保留每个重复组里的最小值。就可以得出如果不在这里的id就都是重复列的id,可以删除。

标签:删除,min,重复,--,mysql,id
From: https://www.cnblogs.com/del-x/p/18338990

相关文章

  • Springboot Docker Redis Mysql集成
    尽管网上关于SpringbootDockerRedisMysql集成的文档很多,但是很多都是老文档,问题不少,所以我专门整理了这份文档。我家里的笔记本是mac,所以我就在mac上详细说明下我的搭建过程。首先我们需要安装docker,mac上本来就有docker的安装包,因此对于mac来说,安装docker就是一件比较轻松的......
  • MySQL:初识数据库&初识SQL&创建数据库
    目录1、初识数据库1.1什么是数据库1.2 什么是MySQL2、数据库2.1 数据库服务&数据库2.2C/S架构3、初识SQL3.1什么是SQL3.2 SQL分类 4、使用SQL4.1查看所有数据库4.1.2语句解析 4.2创建数据库4.2.1 ifnotexists校验 4.2.2手动明确字符集和排序规......
  • 基于Java+SpringBoot+Mysql+Vue实现的4S店保养与维修系统部分功能设计与实现八
    一、前言介绍:1.1项目摘要随着社会经济的不断发展,人们对汽车养护和维修的重视程度日益提高。然而,传统的汽车保养与维修服务存在诸多问题,如信息不对称、服务质量参差不齐等。这些问题不仅影响了消费者的服务体验,也制约了汽车后市场的健康发展。因此,为了解决这些问题,提升汽......
  • 基于Java+SpringBoot+Mysql+Vue实现的4S店保养与维修系统部分功能设计与实现九
    一、前言介绍:1.1项目摘要随着社会经济的不断发展,人们对汽车养护和维修的重视程度日益提高。然而,传统的汽车保养与维修服务存在诸多问题,如信息不对称、服务质量参差不齐等。这些问题不仅影响了消费者的服务体验,也制约了汽车后市场的健康发展。因此,为了解决这些问题,提升汽......
  • 操作系统真象还原:实现文件删除功能
    14.10实现文件删除功能在Linux下用于文件删除的函数是unlink,咱们本节就要实现它。删除文件是创建文件的逆过程,会涉及到inode、inode位图、目录inode中的i_size、目录项、数据块及数据块位图的回收操作,因此还是先构建“底层建筑”。14.10.1回收inodeinode是文件......
  • 【原创】java+ssm+mysql图书信息管理系统设计与实现
    个人主页:程序员杨工个人简介:从事软件开发多年,前后端均有涉猎,具有丰富的开发经验博客内容:全栈开发,分享Java、Python、Php、小程序、前后端、数据库经验和实战开发背景:随着数字化和信息化技术的飞速发展,传统的图书馆管理方式已经逐渐不能满足现代社会的需求。数字化技术为......
  • Mysql索引详解
    1索引1.1索引概述索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。1.1.1特点索引......
  • 【Mysql】索引哪些情况会失效
    索引失效场景当使用索引列进行查询时,最终会到主键索引树查询对应的数据进行返回,理论上来说使用了索引列查询,能很好的提高查询效率,但是不规范的使用,会使索引失效。1.索引列使用函数在索引列上做运算,比如使用函数,会导致mysql无法识别索引列,查询的时候就不会走索引了。不过mys......
  • 【Mysql】Docker下Mysql8数据备份与恢复
    目录【Mysql】Docker下Mysql8数据备份与恢复1创建Mysql容器2连接Mysql3Binlog检查3.1检查是否开启3.2mysql5.73.3mysql84备份数据库4.1容器里执行备份4.2宿主机执行备份4.3参数说明5定时备份!/bin/bash按shift+:输入wq【Mysql】Docker下Mysql8数据备份与恢复1......
  • MySQL优化insert 语句
    当进行数据INSERT的时候,可以考虑采用以下几种优化方式:(1)如果同时从同一客户插入很多行,应尽量使用多个值表的INSERT语句,这种方式将大大缩减客户端与数据库之间的连接、关闭等消耗,使得效率比分开执行的单个INSERT语的快(在大部分情况下,使用多个值表的NSERT语句能比单个INSERT语向......