我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql 去重留一

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql 去重留一

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

第一步:
查询以下俩张表的重复记录 (关键字段重复>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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql 去重留一

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

下载Word文档

猜你喜欢

oracle去除重复数据并保留一条

一般用第二种方法即可。
oracle去除重复数据并保留一条
2019-04-16

Mysql删除重复数据只保留一条

(1)以这张表为例: CREATE TABLE `test` ( `id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '注解id',
2023-08-16

mysql去重怎么去

mysql 中的数据去重方法有:distinct 关键字:消除重复行,仅保留不重复数据。group by 语句:分组后仅返回每个组中的第一个值。unique 索引:为特定列创建唯一索引,确保该列中的数据唯一。union all 操作符:合并
mysql去重怎么去
2024-05-30

mysql怎么删除重复值只保留一个

你可以使用以下步骤来删除重复值,只保留一个:首先,使用 SELECT DISTINCT 查询语句来查找出所有的不重复值。SELECT DISTINCT * FROM your_table;创建一个临时表,将不重复的数据插入到临时表中。C
mysql怎么删除重复值只保留一个
2024-04-09

PHP 数组去重并保留重复元素的次数

php 中可通过 array_count_values() 函数去重数组并保留重复元素的次数。该函数返回一个关联数组,键为原始数组中的元素,值为这些元素出现的次数。PHP 数组去重并保留重复元素的次数在 PHP 中,我们经常会遇到需要去重
PHP 数组去重并保留重复元素的次数
2024-04-27

mysql怎么根据某一字段去重

在MySQL中,可以使用DISTINCT关键字根据某一字段去重。具体的语法如下:```SELECT DISTINCT column_nameFROM table_name```其中,`column_name`是要去重的字段名,`table_
2023-08-30

MySQL怎样删除重复数据,只保留一条?

在实际工作开发过程中,常常会遇到数据库表中存在多条数据重复了,此时我们需要删除重复数据,只保留其中一条有效的数据; 针对这种场景,我们用SQL语句该怎么实现呢? 数据准备 建表语句: DROP TABLE IF EXISTS `test`;
2023-08-30

mysql清理重复数据,并保留最新一条

背景 之前,数据是通过表单提交 后来增加了excel批量导入的功能,但是这个接口没有判断数据重复,覆盖更新 导致线上环境出现大量重复数据 如果要保证数据库不出现重复数据,可以添加唯一索引来限制 参考:Mysql重复数据查重保留一条(i
2023-08-16

mysql怎么去重

mysql去重数据的5种方法:使用distinct关键字,仅保留唯一值;使用group by子句,根据指定列分组,只保留每组一行;使用窗口函数(mysql 8.0及以上),生成唯一行号并过滤为1的行;使用union all与distinct
mysql怎么去重
2024-05-16

mysql查询重复数据只保留一条怎么实现

要查询重复数据并保留一条唯一记录,可以使用以下步骤来实现:使用GROUP BY子句和聚合函数来找出重复数据,并只保留一条记录。使用HAVING子句来筛选出重复数据的记录。使用子查询或临时表来存储重复数据的记录,并通过主键或唯一索引来删除
mysql查询重复数据只保留一条怎么实现
2024-03-05

编程热搜

目录