当前位置: 首页 > article >正文

SQL-分页查询offset的用法

在这里插入图片描述

今天在做一道关于查询一张表中第二高工资的问题时发现没有思路,经过一番搜索发现需要用到offset偏移量来解决这个问题。

OFFSET关键字用于指定从结果集的哪一行开始返回数据。通常,它与LIMIT一起使用,以实现分页效果。其语法如下:
SELECT * FROM 表名 LIMIT 行数 OFFSET 偏移量;
或者

SELECT * FROM 表名 LIMIT 行数 , 偏移量;

那么上述问题中要查询第二高的工资正确写法应该如下:

SELECT  salary FROM employee order by salary DESC limit 1,1

后续更新:
在实际使用中发现这两种用法还是有区别的:
举个例子:
我有一张trip表,里面有10条记录,如下:
在这里插入图片描述

我现在使用第一种用法对它进行查询:

SELECT * FROM `trips` LIMIT 2 offset 3;

结果如下:
在这里插入图片描述
这里看id就行,主要看是查询出来的是第几条数据,可以看到查出来的是第4和5条数据。即这条语句实际上是offset 3: 先从第一条数据开始向后偏移3条数据,然后limit 2:输出偏移后的两条数据。

再看第二种用法:

SELECT * FROM `trips` LIMIT 2,3;

结果如下:
在这里插入图片描述

可以看到这里查出来是3条数据,从id=3开始,到5结束。那么这条语句其实是limit2,3中的第一个数字2先控制从第一条数据开始向后偏移两条数据,然后3 是输出3条数据。可以注意到这种方法的两个数字和上面那种用法是刚好相反的,即这里的语句翻译成上面的语句应该是:

SELECT * FROM `trips` LIMIT 3 offset 2;

总结:
两种写法都能做到分页的效果,看个人选择,推荐还是用offset写法,这样不容易记错,看到offset就能想起他是偏移多少条数据。


http://www.kler.cn/a/153679.html

相关文章:

  • Linux部分基础指令讲解
  • Hdoop学习笔记(HDP)-Part.14 安装YARN+MR
  • B.牛牛排队伍——模拟双链表
  • IntelliJ IDEA安装使用教程
  • Redis——某马点评day01——短信登录
  • 【蓝桥杯选拔赛真题51】python最小下标 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析
  • CSS 绝对定位问题和粘性定位介绍
  • 【九】linux下部署frp客户端服务端实践(内网穿透)
  • Elasticsearch(一)
  • C++学习寄录(九.多态)
  • Python学习路线 - Python语言基础入门 - 准备工作
  • 剑指 Offer(第2版)面试题 12:矩阵中的路径
  • 职场轶事:哭笑不得的领导与同事
  • 8.ROS的TF坐标变换(二):动态坐标变换、多坐标变换代码讲解(以LIO-SAM为例)
  • CSS新手入门笔记整理:CSS文本样式
  • STM32 定时器TIM
  • json.decoder.JSONDecodeError: Extra data: line 1 column 332 (char 331)
  • Leetcode—1094.拼车【中等】
  • C语言——I /深入理解指针(二)
  • 数字图像处理(实践篇) 十六 基于分水岭算法的图像分割