SQL语句删除重复记录且只保留一条有效记录

这篇具有很好参考价值的文章主要介绍了SQL语句删除重复记录且只保留一条有效记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.查找表中多余的重复记录,重复记录是根据单个字段(name)来判断
select * from lib
where name in (select name from lib group by name having count(name) > 1)
2.删除表中多余的重复记录,重复记录是根据单个字段(id)来判断,只留有id最小的记录
delete from lib
where name in (select name from (select name from lib group by name having count(name) > 1) as a)
and id not in (select min_id from (select min(id) as min_id from lib group by name having count(name)>1) as b)
3.删除表中多余的重复记录(多个字段),只留有id最小的记录
DELETE FROM lib WHERE (`name`, version) IN 
(SELECT t.`name`, t.version FROM
   (SELECT `name`, version FROM lib GROUP BY `name`, version HAVING count(1) > 1 ) t)
AND id NOT IN ( SELECT dt.minid FROM
   (SELECT min(id) AS minid FROM lib GROUP BY `name`,  version HAVING count(1) > 1 ) dt);

参考:https://blog.csdn.net/JineD/article/details/126875291文章来源地址https://www.toymoban.com/news/detail-543325.html

到了这里,关于SQL语句删除重复记录且只保留一条有效记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    在实际工作开发过程中,常常会遇到数据库表中存在多条数据重复了,此时我们需要删除重复数据,只保留其中一条有效的数据; 针对这种场景,我们用SQL语句该怎么实现呢? 数据准备 建表语句: 查看重复数据,并筛选 使用having语句进行筛选 对于重复数据,保留一条数据

    2024年02月10日
    浏览(42)
  • SqlServer中根据某几列获取重复的数据将其删除并保留最新一条

    有时候,我们某个数据表中,可能有几列的数据都是一样的,此时我们可能想查询出这几列数据相同的所有数据行,并保留最新一条,将其他重复的数据删除。 假设我们有如下数据表: 此时我们可以使用 ROW_NUMBER 函数,根据某几列查询出重复数据的新的排序列,该排序列就

    2024年04月28日
    浏览(39)
  • mysql中去除重复数据,只保留一条。

                    梳理一下关于删除重复记录的逻辑 目录 前期准备:建表插入数据 1、通过group by 和count(1)1找出有重复的数据  2、通过每个分组中的最小id来去重         2.1、添加主键id列         2.2 去重                 2.2.1、首先找出每个分组中count

    2024年02月08日
    浏览(109)
  • MySQL 联表查询重复数据并删除(子查询删除记录) SQL优化

    数据库表介绍: table_a :主表(小表,表数据不可重复) table_b :流水表(大表,记录审核流水数据) 注:两表表结构大致一致,流水表增加一个审核状态的字段 业务逻辑: 主表保存唯一数据,流水表记录审核流水数据,用于后续展示,并在审核成功后插入主表,在插入流

    2023年04月08日
    浏览(65)
  • 一条SQL语句的前世今生

    本篇文章会分析下一个 SQL 语句在 MySQL 中的执行流程,包括 SQL 的查询在 MySQL 内部会怎么流转,SQL 语句的更新是怎么完成的。 下图是 MySQL 的一个简要架构图,从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。 先简单介绍一下下图涉及的一些组件的基本作

    2024年02月10日
    浏览(30)
  • SQL DELETE 语句:删除表中记录的语法和示例,以及 SQL SELECT TOP、LIMIT、FETCH FIRST 或 ROWNUM 子句的使用

    SQL DELETE 语句用于删除表中的现有记录。 注意 :在删除表中的记录时要小心!请注意DELETE语句中的WHERE子句。WHERE子句指定应删除哪些记录。如果省略WHERE子句,将会删除表中的所有记录! 以下是示例中使用的 Customers 表的一部分: CustomerID CustomerName ContactName Address City Postal

    2024年02月05日
    浏览(82)
  • 01 | 一条 SQL 查询语句是如何执行的?

    以下内容出自 《MySQL 实战 45 讲》 一条 SQL 查询语句是如何执行的? 下面是 MySQL 的基本架构示意图,从中可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。 大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存、分析器、优化器

    2024年02月10日
    浏览(47)
  • MySQL 一条SQL语句是如何执行的?

    ​ 所以今天我们把MySQL拆解一下,看看里边有哪些零件。下边是MySQL的基本架构示意图。 大体来说,MySQL分为Server层和存储引擎两部分。 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数

    2024年02月01日
    浏览(68)
  • MySQL—一条查询SQL语句的完整执行流程

    表结构和数据如下: 我们分析的sql语句如下: 大体来说,MySQL可以分为Server层和存储引擎层两部分: Server层 包括:连接器、查询缓存、分析器、优化器、执行器等 涵盖MySQL的大多数核心服务功能 所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在

    2024年04月28日
    浏览(64)
  • 01 | 基础架构:一条SQL查询语句是如何执行的?

    画出 MySQL 的基本架构图 Server 层和存储引擎层各自有哪些组件? Server 层 连接器 查询缓存 分析器 优化器 执行器 所有内置函数(日期、时间、数学和加密函数等) 所有跨存储引擎的功能(存储过程、触发器、视图等) 存储引擎层 负责数据的存储和读取 连接器的作用? 连接

    2024年02月08日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包