MySQL(8.0) row_number() 函數的使用


MySQL(8.0) row_number() 函數的使用

手動分頁查詢的時候接觸到了 row_number() 函數。

1、介紹

row_number() 函數多用於對數據進行排序,返回的數據項多增加一個序號。

如:按照年齡對用戶進行排序,並返回序號:

select row_number() over( order By age) as rownumber, u.name, u.age, u.email from user u

image-20210730093606098

2、分頁查詢

上文可知 row_number() 可以排序並返回序號,想實現分頁查詢可在外面嵌套一個 select,根據序號對數據進行限制。

如;返回五名年齡最小的用戶:

select * from 
(select row_number() over( order By age) as rownumber, u.name, u.age, u.email from user u) uu 
where uu.rownumber <= 5

image-20210730093843158

手動分頁查詢一般需要傳入兩個參數,page 代表第幾頁, pageSize 代表一頁數量,

當 page = 2, pageSize = 3 時,sql大致如下:

select uu.* from 
(select row_number() over( order By age) as rownumber, u.name, u.age, u.email from user u) uu 
where uu.rownumber >(2-1)*3 and uu.rownumber <=2*3

image-20210730094524322


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM