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

标签:mysql,id,值
0
投稿

猜你喜欢

  • 使用keras实现densenet和Xception的模型融合

    2022-04-15 19:17:01
  • Python并行分布式框架Celery详解

    2023-06-23 10:05:21
  • 5个充满想象力的Web调色板

    2008-08-02 12:55:00
  • MySQL 分表分库怎么进行数据切分

    2024-01-14 06:15:29
  • sql 语句插入结果为select和值混合示例

    2024-01-29 09:12:42
  • Python Matplotlib绘制动画的代码详解

    2022-08-19 20:21:03
  • mysql用户创建与授权的简单实例

    2024-01-18 00:20:18
  • Vue3兄弟组件传值之mitt的超详细讲解

    2023-07-02 16:56:04
  • Python实现RLE格式与PNG格式互转

    2021-07-11 18:23:19
  • mysql修复数据表的命令方法

    2024-01-24 10:15:33
  • ASP.NET中MD5和SHA1密码保护算法的使用

    2007-08-24 09:18:00
  • Javascript showModalDialog两个窗体之间传值

    2024-04-28 09:38:56
  • 与 Function 和 Object 相关的有趣代码

    2010-05-07 12:29:00
  • 全面解析python当前路径和导包路径问题

    2022-09-08 16:00:21
  • 常用的Python代码调试工具总结

    2023-05-17 19:24:29
  • Python读写二进制文件的实现

    2023-07-20 14:48:52
  • swfobject2.1居中问题

    2008-12-15 17:18:00
  • python 实现创建文件夹和创建日志文件的方法

    2023-07-07 11:35:10
  • Win2008中安装的MSSQL2005后无法访问的解决方法

    2024-01-21 03:57:57
  • 使用Python制作一盏 3D 花灯喜迎元宵佳节

    2021-08-15 06:35:43
  • asp之家 网络编程 m.aspxhome.com