1. 程式人生 > >Oracle和Mysql分頁的區別

Oracle和Mysql分頁的區別

一、Mysql使用limit分頁

select * from stu limit m, n; //m = (startPage-1)*pageSize,n = pageSize

 

PS:

(1)第一個引數值m表示起始行,第二個引數表示取多少行(頁面大小)

(2)m= (2-1)*10+1,n=10 ,表示 limit 11,10從11行開始,取10行,即第2頁資料。

(3)m、n引數值不能在語句當中寫計算表示式,寫到語句之前必須計算好值。

二、Oracle使用rownum分頁

select * from (
select rownum rn,a.* from table_name a where
rownum <= x //結束行,x = startPage*pageSize ) where rn >= y; //起始行,y = (startPage-1)*pageSize+1

 

PS:

(1)>= y,<= x表示從第y行(起始行)~x行(結束行) 。

(2)rownum只能比較小於,不能比較大於,因為rownum是先查詢後排序的,例如你的條件為rownum>1,當查詢到第一條資料,rownum為1,則不符合條件。第2、3...類似,一直不符合條件,所以一直沒有返回結果。所以查詢的時候需要設定別名,然後查詢完成之後再通過呼叫別名進行大於的判斷。