MySQL和Oracle分页的区别

数据库   发布日期:2025年06月26日   浏览次数:127

一、MySQL使用limit分页

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

注:m是MySQL中数据行的起始下标,它从0开始

二、Oracle使用rownum分页

  1. 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...类似,一直不符合条件,所以一直没有返回结果。所以查询的时候需要设置别名,然后查询完成之后再通过调用别名进行大于的判断。

或者也可以直接写成

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

 

以上就是MySQL和Oracle分页的区别的详细内容,更多关于MySQL和Oracle分页的区别的资料请关注九品源码其它相关文章!