• 数据库分页查询


    mysql分页查询: 

    是用limit函数

    取前5条数据:select * from table_name limit 0,5  //表示从下标为0位置,开始数5条数据。

    或者select * from table_name limit 5,默认从0开始计数

    查询第11到第15条数据

    select * from table_name limit 10,5

    limit关键字的用法:

    LIMIT [offset,] rows

    offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。

     

    例子:写一个分页查询的sql,要求实现:从start位置开始,数limit条数据。接下来我们只需计算出start、limit的坐标,然后拼接到sql语句中就可以了

    在java代码中对前台参数进行处理:

    stockParam.setPage(page);   //page:从第几页开始
    stockParam.setLimit(limit);     //limit:  每页显示多少条数据,相当于pageSize,count属性
    stockParam.setStart((page-1)*limit);   //start:计算出起始坐标位置,也就是说,从start位置,开始数limit条数据
    List<Stock> stockList = stockBusinessB.getStock(stockParam);
    Integer count = stockBusinessB.count(stockParam);
    

    limit:就是前台传递过来的参数,start=(page-1)*limit,此处不需要加1,因为初始行的坐标为0,接下来只需要将计算好的start、limit拼接到sql语句中即可。

    所以,最终在mapper.xml中的sql如下:

    select * from table
    where name="XX" and age>10
    ORDER BY create_timestamp  DESC
    LIMIT  #{start},  #{limit}  //从start位置开始,数limit条数据
    

      

    oracle分页查询:

     需求:从第page页开始,每页查询pageSize条数据

    //补充:首先需要在java代码中,计算出min、max,然后在拼接到sql语句中即可

      pageSize: 每页的条目数

      page:第几页

      min:(page-1)*pageSize + 1
      max: page * pageSize

      

    oracle中分页查询有伪列ROWNUM的概念,得分三步:先排序,再编号,最后取范围 

        SELECT * 
        FROM ( 
          SELECT ROWNUM rn, t.*
          FROM (
            SELECT ename, empno, salary, job  --此处的select决定所要查的数据,外面的select都是固定的。
            FROM emp
            ORDER BY salary DESC
          )t
        )
        WHERE rn BETWEEN min AND max
    

      

     

        

  • 相关阅读:
    oracle归档空间不足的问题(rman删除归档日志)
    oracle DG查看延时时间
    Convert JS object to JSON string
    转:微信公众平台开发(80) 上传下载多媒体文件
    生成带参数的二维码
    关闭微信浏览器可以使用
    微信内置浏览器的JsAPI(WeixinJSBridge续)进入全屏
    如何隐藏微信公众平台右上角按钮
    微信公众平台服务号、订阅号的相关说明选择字号:
    微信公众平台群发消息的方法及注意事项
  • 原文地址:https://www.cnblogs.com/quan-coder/p/6308699.html
Copyright © 2020-2023  润新知