Mysql 删除重复数据保留一条有效数据
==============================
©Copyright 蕃薯耀 2023-01-31
蕃薯耀的博客_CSDN博客-蕃薯耀分享,java,js领域博主
一、Mysql 删除重复数据,保留一条有效数据
DELETE FROM SZ_Building WHERE id NOT IN (SELECT t.min_id FROM (SELECT MIN(id) AS min_id FROM SZ_Building GROUP BY BLDG_NO) t
)
;
原理:
- 根据字段对数据进行分组,查询出所有分组的最小ID(即要保留的不重复数据)
- 将查询出来的数据(所有不重复的数据)存放到临时表中
- 从原来的表中删除ID不在临时表中的重复数据
当表的数据量达到百万级以上时,删除数据很慢,建议这样处理:
- 先把min(id)存到临时表(SZ_Building_id):
create table SZ_Building_id
SELECT MIN(id) AS id FROM SZ_Building GROUP BY BLDG_NO
;
- 给临时表的id设置成主键或者创建索引(加快后面的查询速度)
alter table add index ind_xxName(字段名:如ID);
- 删除id不在临时表的数据。
delete from SZ_Building where id not in(select id from SZ_Building_id
)
;
二、Mysql 删除重复数据(多个字段分组)
DELETE FROM SZ_Water_Level WHERE id NOT IN (SELECT t.min_id FROM (SELECT MIN(id) AS min_id FROM SZ_Water_Level GROUP BY CZBM,SJ,SW) t
)
;
三、Mysql 查询出可以删除的重复数据
SELECT * FROM SZ_Building WHERE id NOT IN (SELECT t.min_id FROM (SELECT MIN(id) AS min_id FROM SZ_Building GROUP BY BLDG_NO) t
)
;
或
SELECT * FROM SZ_Building WHERE BLDG_NO IN (SELECT BLDG_NO FROM SZ_Building GROUP BY BLDG_NO HAVING COUNT(1)>1
)
AND id NOT IN (SELECT MIN(id) FROM SZ_Building GROUP BY BLDG_NO HAVING COUNT(1)>1
)
;
==============================
©Copyright 蕃薯耀 2023-01-31
蕃薯耀的博客_CSDN博客-蕃薯耀分享,java,js领域博主
Mysql 删除重复数据保留一条有效数据相关推荐
- php如何删除重复的记录,如何删除重复项保留一条数据
方法:1.打开Excel文档,选中要进行编辑的数据:2.点击顶部导航栏的"数据"选项卡:3.在打开的数据功能区,点击"删除重复值"按钮:4.在弹出的" ...
- sql 删除重复记录保留一条_从零学会SQL·二——简单查询
一.使用select查询语句完成以下练习 student表 查询姓名和性别 查询所有字段 给查询的字段名替换别名,姓名替换为s_name,性别替换为"人类性别" 查询姓名时删除重复 ...
- mysql删除重复的数据保留一条
mysql删除重复的数据保留一条 -- 删除多余的重复记录,只保留最小id的记录,content 为内容重复字段 DELETE FROM zimis WHERE id IN (SELECT * FRO ...
- MySql删除重复数据(只保留一条)
MySql删除重复数据 1. 问题引入 前一段遇到MySql数据重复的问题.由于重复向同一张表导入同一批数据,导致前台展示的数据重复,唯一方便快捷的方法莫过于利用delete操作删除重复数据(已经封板 ...
- MySQL删除重复数据只保留最新的一条
MySQL删除重复数据并保留最新的一条,网上有些博客写的有问题,因为他们只考虑到或者说他们的重复数据最多只有两条,当重复数据大于2时,就会出现问题. 案例描述: 按天删除表中重复数据只保留最新的一条( ...
- mysql数据库删除重复的数据保留一条
1.问题引入 假设一个场景,一张用户表,包含3个字段.id,identity_id,name.现在身份证号identity_id和姓名name有很多重复的数据,需要删除只保留一条有效数据. 2.模拟环 ...
- php mysql 删除重复数据_mysql删除重复数据保留一条
1.查找重复数据:SELECT * FROM `table_a` as a WHERE NOT EXISTS (SELECT * FROM table_b as b WHERE b.a_id=a.id ...
- MySQL删除重复数据保留1条
测试表cctest表结构为 CREATE TABLE `cctest` (`id` int(11) NOT NULL,`name` varchar(20) DEFAULT NULL,`date` ye ...
- oracle去重保留一条_mysql、oracle 去重(数据库删除重复数据保留一条)
现在在数据库中有2对重复数据,2条正常数据,我想要把重复数据都删掉 讲一下思路 根据重复字段分组,并增加约束条件,查询出所有的,重复数据的最小id,和重复的属性 SELECT uname,MIN(ui ...
最新文章
- HTML子选择器怎么加图,CSS伪类选择器:before、:after使用:插入字符、插入图片、插入项目编号...
- oracle 返回表的函数,oracle 返回表函数
- ASP.NET MVC 3发布报错(ASP.NET MVC 3在没有安装环境的服务器上运行)的解决方案
- unity描边发光shader_unity shader实例#1 轮廓渲染-描边
- RDBMS即关系数据库管理系统(Relational Database Management System)
- jquery实现图片放大效果
- Java技术面试汇总
- 用 js 写的 WebSocketHeartBeat,心跳检测
- atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结
- 调试经验——Excel函数矩阵相乘函数(MMULT)的应用 (Use of MMULT function in Excel)
- SHFileOperation DeleteFolder
- 2000级2班同学聚会邀请函
- Android 读取assets文件中的文件
- python 转盘 圆形,用python实现一个转盘
- JQuery中$(document)是什么意思?
- Github 上 lux 下载神器的安装及使用教程
- 什么是signal(SIGCHLD, SIG_IGN)函数
- 【MM32F5270开发板试用】定制MicroPython及读取MPU6050数据到OLED1306
- libxml2 使用教程
- 抖音、快手、脸书陷舆论漩涡,CEO纷纷致歉,AI算法不灵了?