mysql函数(一) limit 与offset结合排序获取第2高的数据

10 篇文章 0 订阅

Mysql limit offset示例

例1,假设数据库表student存在13条数据。

语句1:select * from student limit 9,4
语句2:slect * from student limit 4 offset 9

// 语句1和2均返回表student的第10、11、12、13行 //语句2中的4表示返回4行,9表示从表的第十行开始

例2,通过limit和offset 或只通过limit可以实现分页功能。

假设 numberperpage 表示每页要显示的条数,pagenumber表示页码,那么
返回第pagenumber页,每页条数为numberperpage的sql语句:

语句3:

select * from studnet limit (pagenumber-1)*numberperpage,numberperpage

语句4:

select * from student limit numberperpage offset (pagenumber-1)*numberperpage

第二高的查询
1.剔除法:先查询出最大值后,再查一下一次出了第一次最大值外的最大值

select  max(Salary) as SecondHighestSalary from Employee 
where Salary<(select max(Salary) from Employee)

2.使用 limit offset函数来查询
2.1.使用子查询和限定条件

select (

          select DISTINCT  Salary   //去重

           from Employee 

           ORDER BY Salary DESC       //降序排列

         limit 1 offset 1  //从第一条数据读取(offset 1 ,但不包括第一条),往后读取一条数据(limit 1 ),即第二条;

) as SecondHightestSalary;

2.2.使用IFFULL语句和LIMIT语句

select

IFFULL(

         ( select DISTINCT  Salary   

           from Employee 

           ORDER BY Salary DESC  

           limit 1 offset 1),NULL

) as  SecondHightestSalary;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值