MySQL中使用LIMIT分頁


  需求:客戶端通過傳遞pageNum(頁碼)和pageSize(每頁顯示的條數)兩個參數去分頁查詢數據庫表中的數據。
  我們知道MySQL提供了分頁函數limit m,n,但是該函數的用法和需求不一樣,所以就需要根據實際情況去改寫以滿足需求。分析如下:
  查詢第1條到第10條數據的sql是:select * from table limit 0,10;   ->對應我們的需求就是查詢第一頁的數據:select * from table limit (1-1)*10,10;
  查詢第10條到第20條數據的sql是:select * from table limit 10,20;  ->對應我們的需求就是查詢第二頁的數據:select * from table limit (2-1)*10,10;
  查詢第20條到第30條數據的sql是:select * from table limit 20,30;  ->對應我們的需求就是查詢第三頁的數據:select * from table limit (3-1)*10,10;
  通過上面的分析,可以歸納得出符合需求的分頁SQL偽代碼是:select * from table limit (pageNum-1)*pageSize,pageSize。總而言之,我們只需要告訴數據庫要從第幾行開始拿多少條數據就行了。
  但是,limit語句不支持計算,因此,需要從外部傳參(pageNum-1)*pageSize的計算結果,即在Java中計算出來。令rowIndex = (pageNum-1)*pageSize,rowIndex常用的計算方法如下:
//計算行號
public static int getRowIndex(int pageNum, int pageSize){ return (pageNum> 0) ? (pageNum- 1) * pageSize : 0; }
Reference:
原文地址:https://www.cnblogs.com/east7/p/10941584.html


免責聲明!

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



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