Oracle
分页有两种方法
1、基于结果集的分页
查询数据库表全部的数据,放到滚动结果集,通过移动指针从集中取出部分数据,适用于查询数据量小的表;
2、基于查询的分页
直接从数据表中查询部分数据,适合于任何数据量的表
以下是第二种方法操作详情:
-- 分页查询
select s2.*
--插入一个伪列,根据伪列数进行分页
from (select s.*, rownum r
from (select * from student order by id) s --查询出所有学生信息并排序
where rownum <= 20) s2
where s2.r > 0;
--页码 每页显示记录数为20
1 0 20
2 20 40
3 40 60
4 (n-1)*20 n*20
--每页显示20条,查询第二页的学生信息
select s1.*
from (select s.*,rownum r
from(select * from student order by id)s where rownum <=40)s1
where s1.r>20;
-- 每页显示m条,查询第n页
select s1.*
from (select s.*,rownum r
from (select * from student order by id)s where rownum<=(n*m))s1
where s1.r>(n-1)*m;
mysql
select * from table limit(curPage-1)*pageSize,pageSize;