MySql与Oracle分页

[原文]https://blog.csdn.net/justinqin/article/details/77861867

一、MySql使用limit分页

select * from stu limit m, n; //m = (startPage-1)*pageSize,n = pageSize

PS:
(1)第一个参数值m表示起始行,第二个参数表示取多少行(页面大小)
(2)m= (2-1)*10+1,n=10 ,表示 limit 11,10从11行开始,取10行,即第2页数据。
(3)m、n参数值不能在语句当中写计算表达式,写到语句之前必须计算好值。

二、Oracle使用rownum分页

selec * from(
select temp.*,ROWNUM RN from(select * from table) temp
whereRN <=end
)
where RN >=start

end=(page*pagesize)
start=(page-1)*(pagesize+1)

PS:
(1)>= y,<= x表示从第y行(起始行)~x行(结束行) 。
(2)rownum只能比较小于,不能比较大于,因为rownum是先查询后排序的,例如你的条件为rownum>1,当查询到第一条数据,rownum为1,则不符合条件。第2、3…类似,一直不符合条件,所以一直没有返回结果。所以查询的时候需要设置别名,然后查询完成之后再通过调用别名进行大于的判断。

你可能感兴趣的:(数据库)