Mysql查询表中最小可用id值的方法
作者:dn96 发布时间:2024-01-27 02:31:29
今天在看实验室的项目时,碰到了一个让我“棘手”的问题,其实也是自己太笨了。先把 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值的方法网站的支持!
来源:https://www.cnblogs.com/dn96/archive/2018/10/23/9836952.html
猜你喜欢
- js * 联动的实现代码如下所示:<!DOCTYPE html><html lang="en">
- 本文实例为大家分享了python实现抠图的具体代码,供大家参考,具体内容如下其中使用了opencv中的grabcut方法直接上代码# enc
- 本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQL Tuesday #11
- 前言最近项目中遇到用 SQL Server的程序,以前没用过这个数据库,于是尝试将其转换为 MySQL 的格式,可是不想在本地安装 SQL
- 背景:pony是公司的首席体验官、首席产品经理。这次在产品峰会上pony将自己平时经验的积累与大家交流,体验较细。这次分享研发管理部,设计中
- 继续pygame实现俄罗斯方块游戏(AI篇1)的代码更新一、消除后才做评价上一篇我们是对方块落下的位置和落下后出来的空洞进行了评价,但是这些
- 代码如下:<% set rs=server.createobject("adodb.recordset&
- 前言Iframe 是一种将网页嵌入到另一个页面的内容中的方法。这是通过使用 HTML 元素、外部网站的 URL 以及窗口在您的网站上的外观参
- 一、Tesseract文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别。Tesseract是一个用于文字识别的工
- 一、下载地址Apache 5.4 —— httpd-2.4.4-win32.zipPHP 5.4 —— php-5.4.15-Win32-V
- 如何用ASP建立Index Server查询对象并为其参数赋值?我们有两个方法可以做到这一点。一个方法是利用Index Server que
- 导语:谷歌浏览器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个“小恐龙游戏”。🦖相信很多人都玩过 chrome 上提供的恐龙跑跑游戏,
- 一、map函数作用:map主要作用是计算一个序列或者多个序列进行函数映射之后的值语法:map(function,iterable1,iter
- 本文实例讲述了JS实现求5的阶乘运算操作。分享给大家供大家参考,具体如下:方案一:利用while循环function factorial(n
- 前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图
- 为了顺利的开发一个多语言的国际化J2EE程序,需要修改数据库字符集,我的做法如下:安装 MySq时选择字符集为UTF-8修改MySql安装目
- 概述做日志分析工作的经常需要跟成千上万的日志条目打交道,为了在庞大的数据量中找到特定模式的数据,常常需要编写很多复杂的正则表达式。例如枚举出
- 在pycharm中的jupyter notebook上经常会出现端口被占用,ipython的port端口一般是8888如果打开了jupyte
- 很长时间以来,一直想将自己的一些零碎的想法总结下,给自己一个完整的思维,也算是做个存档。一家之言,绝不敢说对别人会有什么帮助,对外人的层面上
- 一,分析代码运行时间第1式,测算代码运行时间平凡方法快捷方法(jupyter环境)第2式,测算代码多次运行平均时间平凡方法快捷方法(jupy