ITPub博客

首页 > IT职业 > IT职场 > oracle和mysql分页的区别

oracle和mysql分页的区别

IT职场 作者:rom 时间:2021-09-11 10:18:06 0 删除 编辑

oracle和mysql分页的区别:

一、MySQL使用limit分页

MySQL 分页 (利用LIMIT关键字) 计算参数为 开始序号(startNum),要查的总条数 (totalNum)

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

(1)第一个参数值m表示起始行,第二个参数表示取多少行(页面大小)

(2)m= (2-1)*10+1,n=10 ,表示 limit 11,10从11行开始,取10行,即第2页数据。

(3)m、n参数值不能在语句当中写计算表达式,写到语句之前必须计算好值。

二、Oracle使用rownum分页

Oracle 分页 (利用自带的rownum) 计算参数为 开始序号(startNum) , 结束序号 (endNum)

select * from (
    select rownum rn, a.* from (
        select * from table_name order by XXX
    ) a
    where ruwnum <= y // 结束行,y = startPage*pageSize
)
where rn > x; // 起始行,x = (startPage-1)*pageSize

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

或者也可以直接写成

select * from (
select rownum rn, a.* from (
        select * from table_name order by XXX
    ) a
)
where rn > x and rn <= y;
// x = (startPage-1)*pageSize, y = startPage*pageSize

推荐:MySQL教程

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4347/viewspace-2833866/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-12

  • 博文量
    0
  • 访问量
    331