定义四个分页变量
pageNow 表示第几页,该变量是由用户来决定,因此变化
pageSize 每页显示几条记录,由程序指定,也可以由用户定制
pageCount 表示共有多少页, 该变量是计算出来->思考 怎样确定
rowCount 共有多少条记录,该变量是查询数据库得到
如何确定pageCount
(1)
if(rowCount% pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
试试: 比如 users表 9 条记录 pageSize=3 =>pageCount=3
比如 users表 10 条记录 pageSize=3 =>pageCount=4
(2)
上面的算法等价于
pageCount=rowCount% pageSize==0 ?rowCount/pageSize: rowCount/pageSize+1;
该运算称为三目运算
(3)
更简单的算法是:
pageCount=(rowCount-1)/pageSize+1;
试试: 比如 users表 9 条记录 pageSize=3 =>pageCount=3
比如 users表 11 条记录 pageSize=3 =>pageCount=4
从users表中按照id分页
oracle分页select方法:
(1)利用三层嵌套,首先排序
select * from(
select t.* ,rownum rn from (
select * from users order by id) t where rownum<=pageSize*pageNow)
where rn>pageSize*(pageNow-1)
sqlserver 分页两种方法:
(1)
select top pagesize(每页显示多少记录) * from users where id not in(select top pagesize*(pagenow(要跳转的页)-1) id from users )
(2)
select top pagesize(每页显示多少记录) * from users where id>( select max(id) from ( select top (pageSize*(pageNow-1))* from users order by id ) as t ) order by id
mysql的分页
select * from users limit pageSize*(pageNow-1),pageSize*pageNow
求总共有多少行
select coutn(*) from users