mysql查询最小的id_Mysql查询表中最小可用id值的方法
今天在看实验室的项目时,碰到了一个让我“棘手”的问题,其实也是自己太笨了。先把 sql 语句扔出来
// 这条语句在id没有1时,不能得到正确的查询结果。
select min(id+1) from oslist c where not exists (select id from oslist where id = c.id+1);
刚开始看到这条查询语句,完全是一脸懵X的状态,可能也是好久没碰 sql 了。
1 exists语法
sql 语法中, exists 用来筛选结果。实际执行过程中, exists 语句是对外表作loop循环,每次loop循环再对内表进行查询操作。把外表的记录逐条代入到子查询,如果子查询结果集为空,说明不存在,反之,则存在。
此处要注意的是,这里把外表的记录代入到子查询中,只是看得到的查询结果是否为 空 ,而不是做实质性的值比较。
举个例子吧:
如果表oslist中的id为1,2,3,4,5,6,7,8,9,10,11,14,15。此处采用文章最开始的sql语句,使用自连接。
那么在查询过程如下:
取id为1,看oslist中存在id = 2的否?,存在,则不纳入结果集;
取id为2,看oslist中存在id = 3的否?,存在,则不纳入结果集;
取id为3,看oslist中存在id = 4的否?,存在,则不纳入结果集;
取id为4,看oslist中存在id = 5的否?,存在,则不纳入结果集;
取id为5,看oslist中存在id = 6的否?,存在,则不纳入结果集;
取id为6,看oslist中存在id = 7的否?,存在,则不纳入结果集;
取id为7,看oslist中存在id = 8的否?,存在,则不纳入结果集;
取id为8,看oslist中存在id = 9的否?,存在,则不纳入结果集;
取id为9,看oslist中存在id = 10的否?,存在,则不纳入结果集;
取id为10,看oslist中存在id = 11的否?,存在,则不纳入结果集;
取id为11,看oslist中存在id = 12的否?,不存在,则纳入结果集;
取id为14,看oslist中存在id = 15的否?,存在,则不纳入结果集;
取id为15,看oslist中存在id = 16的否?,不存在,则纳入结果集;
取(11+1)与(15+1)中值最小的那个,然后返回结果。
结束查询。
ps:MySQL中删除id为最小的数据
//方法1
delete from 表名 where id in (select id from (select min(id) id from 表名 c1) t1);
//方法2
delete from 表名 order by id asc limit 1;
总结
以上所述是小编给大家介绍的Mysql查询表中最小可用id值的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:Mysql获取id最大值、表的记录总数等相关问题的方法汇总
PHP获取MySql新增记录ID值的3种方法
mysql自增ID起始值修改方法
Java获取最后插入MySQL记录的自增ID值的3种方法
使用MySQL的LAST_INSERT_ID来确定各分表的唯一ID值
mysql查询最小的id_Mysql查询表中最小可用id值的方法相关推荐
- MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据
MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据 目录导航: 开发背景: 实战: 表结构如下图所示: 操作: 总结: 回到顶部 开发背景: 最近在做一个批量数据导入到MySQL数据 ...
- mysql获取下一条自增的id_mysql获取一个表中的下一个自增(id)值的方法
mysql获取一个表中的下一个自增(id)值的方法 MySQL: Get next AUTO_INCREMENT value from/for table Note to self: To get t ...
- php mysql获取新添加记录的id值_PHP获取MySql新增记录ID值的方法
今天发现用mysql_insert_id()获取到的新增记录的id不正确, 虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 获取MySql新增记录ID值的方法 ...
- Android中R文件ID值
Android中R文件ID值 文章目录 Android中R文件ID值 前言 知识回顾 在代码中访问资源 语法 R文件 Lib库的R文件 AAR中的R文件 依赖库R文件的生成 R文件的数量 后续疑问 官 ...
- 肘方法确定聚类数k_一种自动识别肘部法则中最优K值的方法与流程
本发明涉及一种自动识别肘部法则中最优K值的方法,特别涉及一种结合利用机器学习中无监督学习中常用的K-Means聚类算法.肘部法则以及通过0-10的规则化对平均畸变程度进行规则化.将0-10规则化后的平 ...
- 织梦cms php中调用当前频道,DEDE织梦CMS模板在runphp=yes的标签中调用其他field值的方法...
这篇文章主要为大家详细介绍了DEDE织梦CMS模板在runphp=yes的标签中调用其他field值的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. Ded ...
- mysql查询数学成绩信息_【MySQL】:利用DQL查询表中的数据
DQL(Data Query Language):数据查询语言,用以查询数据库中表的记录(数据). CREATE TABLE exam( id INT PRIMARY KEY AUTO_INCREME ...
- (笔记)Mysql命令select from:查询表中的数据(记录)
select from命令用来查询表中的数据. 1) 查询所有行 命令格式: select <字段1, 字段2, ...> from < 表名 > where < 表达式 ...
- php设置页面最小高度,HTML_CSS布局中最小高度的妙用,最小高度可以设定一个BOX的最 - phpStudy...
CSS布局中最小高度的妙用 最小高度可以设定一个BOX的最小高度,当其内容较少时时,也能保持BOX的高度为一定,超出就自动向下延伸,但到目前为止,只有Opera 和 Mozilla 支持,IE7开始也 ...
最新文章
- http 里面的post和get区别
- SZOJ 142 钦定
- 二周第三次课(3月28日)
- HBase get查询命令及VERSIONS版本
- JavaScript循环定时器的设置和取消
- linux ps mp,Linux中的命令ps(ps -aux)
- 三数之和—leetcode15
- Eigen(7)Map类
- a pycharm 标记多个_轻松学透Markdown的终极教程 #3:Markdown标准标记语法(全)
- 关于文件上传,我要向struts提点意见
- 【BZOJ3144】[Hnoi2013]切糕 最小割
- 计算机阵列除法器原理,并行除法器 ,并行除法器结构原理是什么?
- Centos8装Wine笔记
- FPGA:vivado2018.1编程界面字体大小与颜色修改
- Android一步步实现无痕埋点(3)-------虎躯一震
- 仙人掌相关问题的处理方法(未完待续)
- 2021黑金牛气冲天新年快乐通用PPT模板
- 三个理由告诉你 为什么社保不能断缴
- k8s常见故障排查一点通
- 猜猜我是谁(猜数游戏)
热门文章
- c语言中字母的定义,c语言字符串定义与初始化 - 且听风吟
- 计算机英语论文摘要,求英语高手翻译论文摘要,非常感谢!
- Python operator.not_()函数与示例
- mysql tomcat列表增删改查_Tomcat-Database
- php单下划线的函数,基于PHP函数的操作方法
- java fastjson 泛型_解决fastjson泛型转换报错的解决方法
- linux安装python2环境_Python基础手册 2 —— Python 环境搭建(Linux)
- python采用面向对象编程模式吗_如何理解 Python 中的面向对象编程?
- matlab启动不了jvm,MATLAB ::在-nojvm启动选项下不再支持此功能
- java解析html jsoup_2020-06-02 jsoup java解析html