創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)主營(yíng)勐臘網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開發(fā)公司,勐臘h5小程序設(shè)計(jì)搭建,勐臘網(wǎng)站營(yíng)銷推廣歡迎勐臘等地區(qū)企業(yè)咨詢小編給大家分享一下oracle和mysql分頁的方法有什么不同,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
oracle和mysql分頁的區(qū)別:
一、MySQL使用limit分頁
MySQL 分頁 (利用LIMIT關(guān)鍵字) 計(jì)算參數(shù)為 開始序號(hào)(startNum),要查的總條數(shù) (totalNum)
select * from stu limit m, n; //m = (startPage-1)*pageSize,n = pageSize
(1)第一個(gè)參數(shù)值m表示起始行,第二個(gè)參數(shù)表示取多少行(頁面大?。?/p>
(2)m= (2-1)*10+1,n=10 ,表示 limit 11,10從11行開始,取10行,即第2頁數(shù)據(jù)。
(3)m、n參數(shù)值不能在語句當(dāng)中寫計(jì)算表達(dá)式,寫到語句之前必須計(jì)算好值。
二、Oracle使用rownum分頁
Oracle 分頁 (利用自帶的rownum) 計(jì)算參數(shù)為 開始序號(hào)(startNum) , 結(jié)束序號(hào) (endNum)
select * from ( select rownum rn, a.* from ( select * from table_name order by XXX ) a where ruwnum <= y // 結(jié)束行,y = startPage*pageSize ) where rn > x; // 起始行,x = (startPage-1)*pageSize
注:rownum只能比較小于,不能比較大于,因?yàn)閞ownum是先查詢后排序的,例如你的條件為rownum>1,當(dāng)查詢到第一條數(shù)據(jù),rownum為1,則不符合條件。第2、3...類似,一直不符合條件,所以一直沒有返回結(jié)果。所以查詢的時(shí)候需要設(shè)置別名,然后查詢完成之后再通過調(diào)用別名進(jìn)行大于的判斷。
或者也可以直接寫成
select * from ( select rownum rn, a.* from ( select * from table_name order by XXX ) a ) where rn > x and rn <= y; // x = (startPage-1)*pageSize, y = startPage*pageSize
看完了這篇文章,相信你對(duì)oracle和mysql分頁的方法有什么不同有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!