当前位置:   article > 正文

sql语句中的limit n,limit n,m 和 limit m offset n 的区别

limit n,m

目录

一:limit n 和limit n,m的区别:

二:limit n,m 和limit m offset n的区别:

三:用一道leetcode题进行实践

前提解释:

  这里的n表示:需要展示多少条结果数据(要几条)。

  这里的m表示:从第m条开始展示结果数据 (从哪里)  。   

一:limit n 和limit n,m的区别:

日常开发中,我们为了展示有限量的结果,常常这样写

select * from table_tmp limit 100;

表示要展示100条结果数据。其实,这里的完整写法应该为

select * from table_tmp limit 0,100

即 从第1条开始展示,一共展示100条数据。于是,当你需要从第21条开始展示,展示40条数据时,就可以这么写

select * from table_tmp limit 20,40;

二:limit n,m 和limit m offset n的区别:

还是上个例子

select * from table_tmp limit 0,100;

用limit n offset m 会写成为

select * from table_tmp limit 100 offset 0;

 表示从第一行开始取,一共取100条结果数据,其实就是将 limit n,m中的变量互换位置后,中间就要加offset,表示的含义是一样的。

三:用一道leetcode题进行实践

Employee 表:
+-------------+------+
| Column Name | Type |
+-------------+------+
| id          | int  |
| salary      | int  |
+-------------+------+
id 是这个表的主键。
表的每一行包含员工的工资信息。
 

编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null 

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/second-highest-salary
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

根据题目,我的方式如下:

  1. select t2.SecondHighestSalary from Employee t1
  2. left join --左连接可以保证第二名为null时结果为null
  3. (select
  4. id,
  5. ifnull((select distinct salary from Employee order by salary desc limit 1,1),null) as
  6. SecondHighestSalary
  7. from Employee) t2
  8. on t1.id = t2.id
  9. order by t2.salary desc limit 0,1;

you got right?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/828149
推荐阅读
相关标签
  

闽ICP备14008679号