1. 程式人生 > >oracle與mysql分頁

oracle與mysql分頁

1、mysql分頁採用limit分頁

select * from test limit start,size;

查詢test表中從第start行開始,查詢size數量行的資料,注意表的下標是從0開始的,即如果要查表最開始的前10行,分頁語句應該這麼寫:

select * from test limit 0,10;

2、oracle中分頁採用rownum分頁

select * from (select rownum rn,t.* from test t where rownum<=end) where rn>=start;

查詢test表從start行開始到end行結束

注意:利用rownum分頁的時候,如果sql需要比較 > 或者 >= 這類寫法,則需要把rownum取一個別名

原因:rownum是偽列,是oracle自動為查詢結果新增的偽列,也就是說rownum是先查詢後排序的,如果where rownum>=5,這個時候查詢第一條發現它的rownum是1,不滿足條件,於是拋棄掉,把第二條的rownum設定為1,再判斷第二條是否滿足,發現還是不滿足,繼續拋棄掉,把第三條的rownum設定為1...........如此出現一種死迴圈的判斷,到最後,查詢來的結果集就是個空集。