Oracle
Oracle使用rownum进行分页,rownum是从1开始的:
select * from (select rownum as rn, a.* from table_name a where rownum <= pageIndex * pageSize) where rn > (pageIndex - 1) * pageSize
其中,pageIndex是页码,pageSize是每页的条数
MySQL
MySQL的limit语句 (select * from 表名称 limit m,n) 是很方便,但是对数据量很大的表不适合直接使用。参考:点击打开链接
综合考虑下,我们可以利用索引来进行高效地分页查询
方式一:把这一页的第一条数据的id查出来,然后按数量查询
select * from table_name where id >= (select id from table_name limit (pageIndex-1) * pageSize, 1) limit pageSize
方式二:把这一页所有的数据id查出来,然后从数据库中按照这些id进行查询
select a.* FROM table_name a join (select id from table_name limit (pageIndex-1) * pageSize, pagesize) b on a.id = b.id