mysql分頁問題

2021-06-27 15:27:08 字數 1730 閱讀 9187

首先說明一下分頁的幾個變數:

pagenow  

表示當前是第幾頁(由使用者決定);

pagesize   

表示每頁顯示幾條記錄(由程式決定);

pagecount 

表示共有多少頁(計算得出)

rowcount      表示共有多少記錄(從資料庫查詢可得出)

pagecount的計算方法:

pagecount = rowcount%pagesize==0 ? rowcount/pagesize : rowcount/pagesize + 1; ②

pagecount = (rowcount-1)/pagesize+1;

③  if(rowcount%pagesize==0)

pagecount=rowcount/pagesize;

else

pagecount=rowcount/pagesize+1;

rowcount的查詢語句:

ps = conn.preparestatement(

"select count(*) from user");

顏色部分為mysql查詢總共有多少記錄的語句

rs = ps.executequery();

rs.next();   一定要執行以下next()方法,不然取不到記錄數量!

rowcount=rs.getint(1);

下面是分頁的核心部分:

string sql = 

" select * from  user order by id limit "

+(pagenow-

1)*pagesize+

","+pagesize+

"";

該sql語句是用來執行分頁操作的mysql語句,具體格式為:

select * from 表名 order by 欄位名 limit number1 , number2;

(number1表示從第幾個記錄開始 不包括

number1本身;

number2表示從

number1往下數幾個)

ps = conn.preparestatement(sql);

rs=ps.executequery();

out.println(""); 建立乙個**

out.println("id

使用者名稱密碼

");

while(rs.next())

out.println("");

out.print("+(pagenow==1?pagenow:(

pagenow-1

))+");

request.getparameter(

"pagenow"))

for(inti=1;i<=pagecount;i++)

out.print("+(pagenow==pagecount?pagenow:(

pagenow+1

))+"); 最後

一頁,則跳轉仍停留在本頁面;如果不為

最後request.getparameter(

"pagenow"))

out.println("   "+"當前頁"+pagenow+"/"+"總頁數"+pagecount);

mysql 分頁 重複 Mysql分頁重複問題

因為這個bug,同事差點被祭天 mp.weixin.qq.com 前言前些天同事告訴我遇到乙個的bug.mysql分頁時每頁的資料中有重複的資料.我一聽驚呆了,以前怎麼都沒有遇見這種事情.案件重演 用於涉及到業務表,不方便截圖.就用簡單的模擬資料表來進行測試吧 建立學生表 create table ...

mysql 分頁 不連續 mysql分頁的問題

用過mysql的人肯定知道,mysql提供了原生的分頁功能 limit關鍵字。limit 子句可以被用於強制 select 語句返回指定的記錄數。limit 接受乙個或兩個數字引數。引數必須是乙個整數常量。如果給定兩個引數,第乙個引數指定第乙個返回記錄行的偏移量,第二個引數指定返回記錄行的最大數目。...

mysql分頁概念 MySQL 分頁

分頁的基本原理 mysql explain select from message order by id desc limit 10000,20 1.row id 1 select type table message type index possible keys null key prima...