美文网首页
mysql和oracle分页

mysql和oracle分页

作者: Apple_Boy | 来源:发表于2019-06-27 20:50 被阅读0次

    一、Mysql使用limit分页

    1select* 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分页

    select* from(

    select rownum rn,a.* from table_name a where rownum <= x

    //结束行,x = startPage*pageSize

    )

    where rn >= y; //起始行,y = (startPage-1)*pageSize+1

    PS:

    (1)>= y,<= x表示从第y行(起始行)~x行(结束行) 。

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

    其他:

    Oracle分页查询格式:

    SELECT * FROM  (  SELECT A.*, ROWNUM RN  FROM (SELECT * FROM TABLE_NAME) A  WHERE ROWNUM <= 40  )  WHERE RN >= 21

    mysql分页查询格式:

    mysql> SELECT * FROM table LIMIT5,10; //检索记录行 6-15 ,注意,10为偏移量

    //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:

    mysql> SELECT * FROM table LIMIT 95,-1; //检索记录行 96-last.

    //如果只给定一个参数,它表示返回最大的记录行数目:

    mysql> SELECT * FROM table LIMIT5; //检索前 5 个记录行 //也就是说,LIMIT n 等价于 LIMIT 0,n。

    LIMIT 3,4相当于   LIMIT 4 OFFSET 3

    相关文章

      网友评论

          本文标题:mysql和oracle分页

          本文链接:https://www.haomeiwen.com/subject/jnedcctx.html