zoukankan      html  css  js  c++  java
  • 问题记录:Oracle分页查询在某个特定页时,几个连续页数据查询返回数据一样

    使用 MyBatisPlus 分布查询时,在特定页面时候返回数值一样,MyBatisPlus调用如下:

    List<SomeObject> selectWatchListModel(Page<SomeObject> page, @Param("query")SomeObjectQuery query);

    后端日志如下:

    SELECT * FROM 
    ( SELECT TMP.*, ROWNUM ROW_ID FROM ( SELECT ... FROM ... ORDER BY INDEXORDER ASC, TRIGTIME DESC nulls LAST ) TMP WHERE ROWNUM <=200) 
    WHERE ROW_ID > 190

    分析发现

    SELECT ... FROM ... ORDER BY INDEXORDER ASC, TRIGTIME DESC nulls LAST

    查询并没有问题,该查询多次返回结果并没有重复项,顺序也是一致,但是 

    WHERE ROWNUM <=200
    

    当ROWNUM对应不同的数值时个,如当查询为<190时,对比发现两次查询返回内容尾部排序不同,但是最后的几个又是相同,这导致了整个查询在相同的几页返回的数据是一样的

    解决方案:在自定义的查询里面添加排序中添加主键排序

  • 相关阅读:
    网址
    oracle一些笔记
    GLOBAL_NAMES参数研究
    创建 dblink
    解析grant connect, resource to user语句
    授权
    Bootstrap(转)
    C#操作XML小结(转)
    使用backbone.js、zepto.js和trigger.io开发HTML5 App
    SQLSERVER存储过程基本语法
  • 原文地址:https://www.cnblogs.com/m2492565210/p/15547765.html
Copyright © 2011-2022 走看看