广告
返回顶部
首页 > 资讯 > 数据库 >mysql 去重留一
  • 163
分享到

mysql 去重留一

2024-04-02 19:04:59 163人浏览 八月长安
摘要

首先先分析一下 我们现在的目的 是 查询到这俩张表的所有数据 然后进行删除重复记录 每条数据只保留一条 第一步: 查询以下俩张表的重复记录 (关键字段重复>1) ks_examcity 、 ks

首先先分析一下 我们现在的目的 是 查询到这俩张表的所有数据 然后进行删除重复记录 每条数据只保留一条

第一步:
查询以下俩张表的重复记录 (关键字段重复>1)
ks_examcity 、 ks_examdistrict

select * from ks_examcity group by examSubjectID,city,province having count(examSubjectID)>1;
select * from ks_examdistrict group by examSubjectID,district,city having count(examSubjectID)>1;
第二步:
   查询这两张表中 每条记录的第一条记录 (每条记录重复中的第一条 id最小)
select min(id)
  from ks_examcity
 group by examSubjectID, city, province
having count(examSubjectID)> 1

SELECT min(id)
  FROM `ks_examdistrict`
 GROUP BY `examSubjectID`, `district`, `city`
HAVING COUNT(`examSubjectID`)> 1
第三步:
    联查: 查询所有的重复数据以及重复记录中第一条以外的数据
select `examSubjectID`
  from ks_examcity
 group by examSubjectID, city, province
having count(examSubjectID)> 1 )
   and id not in(
select min(id)
  from ks_examcity
 group by examSubjectID, city, province
having count(examSubjectID)> 1

SELECT `examSubjectID`
  from `ks_examdistrict`
 group by `examSubjectID`, `district`, `city`
HAVING COUNT(`examSubjectID`)> 1)
   and id not in(
SELECT min(id)
  FROM `ks_examdistrict`
 GROUP BY `examSubjectID`, `district`, `city`
HAVING COUNT(`examSubjectID`)> 1
第四步:  查询以上查询到的数据的所有id  并以查询到的id作为条件 进行删除

delete from `ks_examcity`  where id IN(  select id from (
select  id
  from ks_examcity
 where `examSubjectID` in(
select `examSubjectID`
  from ks_examcity
 group by examSubjectID, city, province
having count(examSubjectID)> 1 )
   and id not in(
select min(id)
  from ks_examcity
 group by examSubjectID, city, province
having count(examSubjectID)> 1)) as  tmpresult)

======================================================

DELETE
  FROM `ks_examdistrict`
 where id IN(
SELECT id
  from(
select id
  from `ks_examdistrict`
 where `examSubjectID` in(
SELECT `examSubjectID`
  from `ks_examdistrict`
 group by `examSubjectID`, `district`, `city`
HAVING COUNT(`examSubjectID`)> 1)
   and id not in(
SELECT min(id)
  FROM `ks_examdistrict`
 GROUP BY `examSubjectID`, `district`, `city`
HAVING COUNT(`examSubjectID`)> 1)) as tmpresult)

参考文章 :https://www.cnblogs.com/jdbeyond/p/8157224.html

您可能感兴趣的文档:

--结束END--

本文标题: mysql 去重留一

本文链接: https://www.lsjlt.com/news/39549.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql 去重留一
    首先先分析一下 我们现在的目的 是 查询到这俩张表的所有数据 然后进行删除重复记录 每条数据只保留一条 第一步: 查询以下俩张表的重复记录 (关键字段重复>1) ks_examcity 、 ks...
    99+
    2022-10-18
  • mysql中去除重复数据,只保留一条。
                    梳理一下关于删除重复记录的逻辑 目录 前期准备:建表插入数据 1、通过group by 和count(1)>1找出有重复的数据  2、通过每个分组中的最小id来去重         2.1、添加主键id列  ...
    99+
    2023-08-31
    mysql 数据库
  • oracle去除重复数据并保留一条
    一般用第二种方法即可。...
    99+
    2019-04-16
    oracle去除重复数据并保留一条
  • mysql实现查重只留一个的方法
    这篇文章将为大家详细讲解有关mysql实现查重只留一个的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql实现查重只留一个的方法:首先通过“select...
    99+
    2022-10-18
  • Mysql删除重复数据只保留一条
    (1)以这张表为例: CREATE TABLE `test` ( `id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '注解...
    99+
    2023-08-16
    mysql 数据库 sql
  • mysql清理重复数据,并保留最新一条
    背景 之前,数据是通过表单提交 后来增加了excel批量导入的功能,但是这个接口没有判断数据重复,覆盖更新 导致线上环境出现大量重复数据 如果要保证数据库不出现重复数据,可以添加唯一索引来限制 参考:Mysql重复数据查重保留一条(i...
    99+
    2023-08-16
    mysql 数据库 sql
  • MySQL怎样删除重复数据,只保留一条?
    在实际工作开发过程中,常常会遇到数据库表中存在多条数据重复了,此时我们需要删除重复数据,只保留其中一条有效的数据; 针对这种场景,我们用SQL语句该怎么实现呢? 数据准备 建表语句: DROP TABLE IF EXISTS `te...
    99+
    2023-08-30
    MySQL
  • mysql怎么根据某一字段去重
    在MySQL中,可以使用DISTINCT关键字根据某一字段去重。具体的语法如下:```SELECT DISTINCT col...
    99+
    2023-08-30
    mysql
  • mysql -- 左连接一对多只取一条,去重重复字段
    背景:         例如,给你一张用户表,还有一张地区信息表(每条数据都是到省 - 市 - 县 的地区信息,具体到县区),用户表中有用户所在市区字段,你要根据 地区信息表 查用户的所在市区的市区编码。就会出现一个情况,用户表 左连接 地...
    99+
    2023-08-31
    mysql 数据库
  • # java合并两个list 并去重,指定保留其中一个list的重复数据
    在Java中,有多种方法可以合并两个List并去重,指定保留其中一个List的重复数据。下面介绍几种常见的方法,并附上代码示例。 方法一:使用addAll()方法和contains()方法 该方法首先...
    99+
    2023-09-01
    java list 数据结构
  • MySQL如何去重
    这篇文章主要介绍了MySQL如何去重,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求分析数据库中存在重复记录,删除保留其中一条(是否重复判...
    99+
    2022-10-18
  • Mysql 删除重复数据保留一条有效数据
    ============================== ©Copyright 蕃薯耀 2023-01-31 蕃薯耀的博客_CSDN博客-蕃薯耀分享,java,js领域博主 一、Mysql 删除重复数据,保留一条有效数据 DELET...
    99+
    2023-09-05
    数据库 mysql 删除重复数据 保留ID最小的数据 蕃薯耀
  • mysql自联去重的一些笔记记录
    我先把功能场景简要阐述下: 数据行字段如下: name started_at type 在这张表里,name有重复值 现在需要在type确定的情况下,筛选出一个列表,满足,name不重复,找出的记...
    99+
    2022-10-18
  • MySQL有两条以上重复数据时只保留一条
    MySQL有两条以上重复数据时只保留一条 当一个字段有多条重复数据时,只想筛选出其中的一条,语句如下: select * from alert_message where id i...
    99+
    2023-10-23
    mysql 数据库 sql
  • 如何将MySQL去重
    这篇文章给大家分享的是有关如何将MySQL去重的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。•问题提出源表t_source结构如下:item_id int,  ...
    99+
    2022-10-18
  • Mysql删除重复数据并且只保留一条(附实例!)
    (1)以这张表为例: CREATE TABLE `test` ( `id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ...
    99+
    2023-02-01
    mysql删除重复保留唯一 mysql怎么删除重复数据 数据库重复数据只保留一条
  • 一次SQL怎么查重及去重
    这篇文章主要为大家展示了“一次SQL怎么查重及去重”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“一次SQL怎么查重及去重”这篇文章吧。前言在使用SQL提数的时候,常会遇到表内有重复值的时候,就需...
    99+
    2023-06-29
  • Mysql 数据库去重(distinct)
    有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回...
    99+
    2023-10-24
    数据库 mysql
  • Mysql 多字段去重 【转】
    现在有如下表 id name age 1 张三 23 2 李四 34 3 张三 23 4 李四 ...
    99+
    2014-09-24
    Mysql 多字段去重 【转】
  • MySQL怎么去重数据
    本篇内容主要讲解“MySQL怎么去重数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL怎么去重数据”吧!查询 tb_students_info 表中所...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作