關于 Oracle分頁數據重復的問題

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

先說問題吧。最近在測試一個新的模塊,發現列表數據的前三頁數據竟然是一樣的。第一反應是 pageNo 的問題,debug一看,pageNo是正確的,然后一層層debug下去,所有參數都是正確的哇。難道是SQL的問題? SQL是hibernate自動生成的,我參數設置對了應該不會有問題。不過還是拿出來看看吧,把 SQL 復制出來,把對應的參數 設置進去,然后運行 SQL,臥槽!還真是 SQL 的問題!

select?*?from?(?select?row_.*,?rownum?rownum_?from?(?select?.....?order?by?xxx??)?row_?where?rownum?<=?20)?where?rownum_?>?15.select?*?from?(?select?row_.*,?rownum?rownum_?from?(?select?.....??order?by?xxx)?row_?where?rownum?<=?25)?where?rownum_?>?20.

上面兩條 SQL 查詢出來的數據是一模一樣的! 只是rownum不一樣而已。直覺告訴我 問題出在 rownum上,和代碼無關。上網查了一下,找到了答案:http://lelong.iteye.com/blog/1931159

大概意思就是說:oracle查詢的時候,如果沒有指定排序條件(即order by),就是根據物理存儲的位置順序取出來,rownum是根據物理存儲的位置順序對查詢結果的一個編號為列,如果查詢過程中,數據物理位置發送改變(我覺得這情況幾乎沒啥可能發生),就會造成分頁數據庫重復。

如果有排序條件依然發生重復(就是我的情況),那是因為排序條件的字段值不具有唯一性,排序條件的字段至少有一個需是值唯一(可以是主鍵)。Oracle這里使用的排序算法不具有穩定性,對于鍵值相等的數據,這種算法完成排序后,不保證這些鍵值相等的數據保持排序前的順序。

我的排序條件是時間,很多時間是一樣的。。。所以數據重復了

所以解決方法:加一個值具有唯一性的字段作為排序條件(我選 主鍵ID),然后就可以了


轉載于:https://my.oschina.net/u/2410853/blog/532165

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286668.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286668.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286668.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

10分鐘做一個新聞問答web站點[iVX低代碼實戰]

一、創建首頁 進入到iVX線上編輯器后&#xff0c;選擇相對定位。 點擊創建后進入到 IDE 之中&#xff1a; 我們在第一步中首先創建一個首頁。點擊左側組件欄中的頁面組件&#xff0c;創建一個頁面&#xff1a; 接著重命名該頁面為Home&#xff0c;在頁面中創建一個行&#x…

iOS開發網絡篇—網絡編程基礎

一、為什么要學習網絡編程 1.簡單說明 在移動互聯網時代&#xff0c;移動應用的特征有&#xff1a; &#xff08;1&#xff09;幾乎所有應用都需要用到網絡&#xff0c;比如QQ、微博、網易新聞、優酷、百度地圖 &#xff08;2&#xff09;只有通過網絡跟外界進行數據交互、數據…

PDF.js開發筆記

PDF.js是一個由HTML5建立的PDF閱讀器。依托開源社區驅動和Mozilla實驗室的技術支持。目標是建立一個通用的&#xff0c;基于web的解析和渲染PDF文件的平臺。https://github.com/ChineseDron/pdf.js# 是從Mozilla原版中fork出來的一個版本&#xff0c;原版的鏈接在這里https://g…

深入理解Three.js(WebGL)貼圖(紋理映射)和UV映射

本文將詳細描述如何使用Three.js給3D對象添加貼圖&#xff08;Texture Map&#xff0c;也譯作紋理映射&#xff0c;“貼圖”的翻譯要更直觀&#xff0c;而“紋理映射”更準確。&#xff09;。為了能夠查看在線演示效果&#xff0c;你需要有一個兼容WebGL的現代瀏覽器&#xff0…

Android之glide加載圓形圖片地址異常監聽

1 問題 glide加載圖片地址的時候&#xff0c;可能這個地址沒有圖片&#xff0c;那么我們需要對這種異常情況進行處理&#xff0c;當然我們也需要把這個圖片進行圓形化 2 代碼解決 Glide.with(mContext).load(iconPath).error(new ColorDrawable()).listener(new RequestListen…

在蘭州吃牛肉面時親眼目睹的一幕,我感動了

今天中午去吃占國牛肉面&#xff0c;人比較多&#xff0c;很熱鬧。旁邊坐了一群身穿校服的小學生&#xff0c;身后坐著一位小學老師&#xff0c;當孩子們發現老師在后面的時候&#xff0c;都異口同聲地叫老師過去跟他們一起吃&#xff0c;老師嘿的一笑&#xff0c;沒同意&#…

如何跨 Namespace 同步 Secret 和 ConfigMap?

Secret 和 ConfigMap 資源對象是命名空間級別的。它們只能被同一命名空間中的 Pod 引用。所以有時候不得不手動為每個命名空間創建它們。但有很多場景&#xff0c;我們想讓它們是全局的&#xff0c;至少可以是跨命名空間共享的 Secret 和 ConfigMap&#xff0c;例如這些場景&am…

OS X 10.11 安裝Cocoapods

sudo gem install cocoapods報如下錯誤&#xff1a; ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/xcodeproj 解決的辦法是&#xff1a;sudo gem install -n /usr/local/bin cocoapods gem影像改成&#xff1a;https://ruby.taobao.org/…

一文總結學習 Python 的 14 張思維導圖

本文主要涵蓋了 Python 編程的核心知識&#xff08;暫不包括標準庫及第三方庫&#xff0c;后續會發布相應專題的文章&#xff09;。 首先&#xff0c;按順序依次展示了以下內容的一系列思維導圖&#xff1a;基礎知識&#xff0c;數據類型&#xff08;數字&#xff0c;字符串&am…

GEE學習筆記

掩膜 ? 在遙感圖像處理中&#xff0c;"掩膜"是指一種用于隱藏或保留圖像特定部分的技術。掩膜通常是一個二進制圖像&#xff0c;其中的像素值為0或1&#xff0c;分別表示遮蔽或保留。 ? 在去除云的情境中&#xff0c;掩膜通常用于隱藏圖像中被云覆蓋的部分&#…

十一、飛機大戰(IVX 快速開發教程)

十一、飛機大戰 制作微信小游戲大致流程與微信小程序、Web類似&#xff0c;不同的在于是組件的使用。 文章目錄十一、飛機大戰11.1.1 完成游戲角色制作11.1.2 完成物理世界添加11.1.3 完成子彈對象反重力運動11.1.4 使用對象組創建子彈11.1.5 子彈優化11.1.6 設置敵機11.1.7 優…

中國版LinkedIn呼之欲出

迄今為止&#xff0c;發展勢頭強勁的Facebook仍未上市&#xff0c;而美國職業社交網站LinkedIn 卻率先登錄紐約證券交易所&#xff0c;股價在第一天的交易中飆升&#xff0c;從45美元的發行價上漲了一倍&#xff0c;然后超過100美元&#xff0c;最終以94.25美元收盤。 LinkedIn…

Android之實現RecyclerView拖拽效果和固定部分元素不進行交換位置(包含源代碼下載地址)

1、效果爆照 啟動的效果 拖動過程中的效果 拖動后的效果 2、需求和問題 需求:RecyclerView實現拖拽效果,但是部分固定位置不能進行拖拽也不能在拖拽的過程中交換順序

各主流瀏覽器內核介紹

所謂的“瀏覽器內核”無非指的是一個瀏覽器最核心的部分——“Rendering Engine”&#xff0c;直譯這個詞匯叫做“渲染引擎”&#xff0c;不過我們也常稱其為“排版引擎”、“解釋引擎”。這個引擎的作用是幫助瀏覽器來渲染網頁的內容&#xff0c;將頁面內 容和排版代碼轉換為用…

測繪地理信息標準(國家、行業、地方)大全來了:測繪地理信息標準化服務平臺

測繪地理信息標準化服務平臺&#xff0c;這里有你需要的所有標準&#xff0c;趕快來圍觀吧&#xff01;

WPF效果第一百八十七篇之再玩ListBox

大周末的接著上一篇又玩了ListBox,這不又來再次去玩耍ListBox;畢竟是我的最愛,沒辦法就喜歡玩耍他;閑話也不多扯了,直接看最終效果:2、ItemsPanel還是老樣子:<ItemsPanelTemplate x:Key"CommonItemsPanelTemplate"><WrapPanel Orientation"Horizontal&…

Nginx支持比Apache高并發的原因

1.先從各自使用的多路復用IO模型說起&#xff1a; select模型&#xff1a;&#xff08;apache使用&#xff0c;由于受模塊等限制&#xff0c;用的不多&#xff09; 單個進程能夠 監視的文件描述符的數量存在最大限制select()所維護的 存儲大量文件描述符的數據結構 &#xf…

利用pdf.js開發嵌入pdf顯示,以及利用jquery-ui左右分欄顯示

原來考慮用pdf.js的viewer.html頁面&#xff0c;但怎么用都不方便。因此直接用pdf.js在左側連續顯示pdf所有內容&#xff0c;右側顯示其它相關內容&#xff0c;并且左右寬度可以任意拖動&#xff0c;最終實現效果如圖&#xff1a; 代碼&#xff1a;<!DOCTYPE html><ht…

十三、制作 iVX音樂分享小程序

功能介紹 通過前幾節的學習&#xff0c;我們對完成一個應用已經有了一些自己的心得。在此再次再制作一個小的音樂小程序應用。該應用一共分為首頁、榜單頁、音樂分享頁和音樂搜索頁。 首頁&#xff1a; 榜單內容頁&#xff1a; 音樂分享頁&#xff1a; 音樂搜索頁&#xff1a…

01_反射_02_反射類的構造方法

【工程截圖】 【Person.java】 //將要被反射的類 package com.Higgin.reflect; import java.util.List;public class Person {private String name"NULL";private int age0;public Person(){System.out.println("構造方法&#xff1a;Person()");}public P…