爲什麼需要分頁
1. 方便用戶查看,提高客戶端體驗
2. 減輕數據庫資源管理器的開銷,提高程序運行速度
分頁查詢的本質
查看某一頁就只返回這一頁的數據
設計分頁時的幾個變量
page:頁碼
pageSize: 每頁顯示記錄的數量
totalPage: 總頁數 (必須知道總記錄數和每頁要顯示的記錄數)
totalCount: 總記錄數 = select count(id) from 表名
因此:
totalPage可以利用以下公式得知:
if(totalCount%pageSize==0)
{totalPage = totalCount/pageSize;}
else{totalPage = totalCount/pageSize + 1;}
hasPreviousPage : 是否顯示上一頁 (可根據當前頁判斷)
hasNextPage : 是否顯示下一頁 (可根據總頁數判斷)
filter:: 要過濾的記錄數(即,查詢返回的記錄中不包含的記錄)
該變量的值又可根據以下公式得知:
filter= pageSize*(page - 1) ;
(假定每頁5條記錄,即:第一頁:過濾前0條,第二頁過濾前5條,第三頁過濾前10條.........)
_______________________________________________________________________________
常見數據庫分頁語句:
1. Oracle
假設每頁5條記錄:
select * from (select e.*,rownum k from emp e 【where 條件】 )where k>(頁碼-1)*5 and k<=頁碼*5
2. MySQL
//假設每頁10條記錄:
int pageSize=10;
int filter= pageSize* (page-1)
select * from 表名 where 主鍵 is not null limit filter,pageSize
3. SQLServer
假設每頁10條記錄:
int pageSize=10;
int filter= pageSize* (page-1)
"select top pageSize * from Users where id not in(select top " + filter+ " id from Users) order by id desc";
_________________________________________________________