删除表内innerNO对应的SerialNO值不是最大的所有数据

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
 
  1. mysql> select * from t2; 
  2. +----+----------+---------+ 
  3. | id | SerialNO | InnerNo | 
  4. +----+----------+---------+ 
  5. |  1 |       19 |      10 |  
  6. |  2 |       16 |      10 |  
  7. |  3 |       99 |      10 |  
  8. |  4 |       17 |      10 |  
  9. |  5 |       53 |      11 |  
  10. |  6 |       67 |      11 |  
  11. |  7 |       89 |      12 |  
  12. +----+----------+---------+ 
  13. 7 rows in set (0.02 sec) 

需求:
这样的表,要删除innerNO对应的SerialNO值不是最大的所有数据。
例如innerNO=10,这个对应SerialNO值是19,16,99,17,只留这4条最大的SerialNO值,其他的都给删了。

 
  1. mysql> select a.*,b.* from t2 a left join t2 b on a.InnerNO=b.InnerNO where a.SerialNO < b.SerialNO group by a.SerialNO; 
  2. +----+----------+---------+------+----------+---------+ 
  3. | id | SerialNO | InnerNo | id   | SerialNO | InnerNo | 
  4. +----+----------+---------+------+----------+---------+ 
  5. |  2 |       16 |      10 |    1 |       19 |      10 |  
  6. |  4 |       17 |      10 |    1 |       19 |      10 |  
  7. |  1 |       19 |      10 |    3 |       99 |      10 |  
  8. |  5 |       53 |      11 |    6 |       67 |      11 |  
  9. +----+----------+---------+------+----------+---------+ 
  10. 4 rows in set (0.05 sec) 
 
  1. mysql> delete a from t2 a join t2 b on a.InnerNO=b.InnerNO where a.SerialNO < b.SerialNO ; 
  2. Query OK, 4 rows affected (0.20 sec) 
  3.  
  4. mysql> select * from t2; 
  5. +----+----------+---------+ 
  6. | id | SerialNO | InnerNo | 
  7. +----+----------+---------+ 
  8. |  3 |       99 |      10 |  
  9. |  6 |       67 |      11 |  
  10. |  7 |       89 |      12 |  
  11. +----+----------+---------+ 
  12. 3 rows in set (0.03 sec) 

 

 









本文转自hcymysql51CTO博客,原文链接:http://blog.51cto.com/hcymysql/1040888 ,如需转载请自行联系原作者


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
27天前
Mibatis插入数据的时候遇到某个字段空值
Mibatis插入数据的时候遇到某个字段空值
9 0
|
10月前
|
SQL 关系型数据库 MySQL
列的完整性约束——设置表字段值自动增加(AUTO_INCREMENT)
列的完整性约束——设置表字段值自动增加(AUTO_INCREMENT)
|
关系型数据库 MySQL Java
给数据表添加或者删除列|学习笔记
快速学习给数据表添加或者删除列
104 0
|
存储 索引
十、清空表时优先使用truncate
十、清空表时优先使用truncate
85 0
DataTable 修改列名 删除列 调整列顺序
DataTable 修改列名 删除列 调整列顺序
165 0
|
Linux
为表的所有字段插入数据
为表的所有字段插入数据
124 1
在指定的列中插入数据
在指定的列中插入数据
40 0
|
SQL 安全 数据库
如何向表中插入数据以及如何更新、删除表中的数据
1. 插入 INSERT 用来将行插入到数据库表中。插入有几种方式: 插入完整的行。 插入行的一部分。 插入某些查询的结果。 INSERT 语法要求指定表名和插入到新表中的值。例如,我们将一个新顾客插入到 customers 表中。 插入前: INSERT INTO Customers VALUES('1000000006', 'Toy Land', '123 Any Street', 'New York', 'NY', '11111', 'USA', 'Jordan', 'Jordan@gmail.com'); 运行结果如下: 插入到新表中的值由 VALUES 子
123 0
插入、更新、删除表中的数据
插入、更新、删除表中的数据 笔记 (文中的姓名、电话等为随机编写的,如有冒犯,请多多包涵) >需求1 向科目表中添加数据,如表1 科目编号 科目名 课时数 年级编号 1 Logic Java 220 1 2 HTML 160 1 3 Java OOP 230 2 第一步,创建科目表subject,create table `subject`(.
1528 0