mysql函數(一) limit 與offset結合排序獲取第2高的數據

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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章