<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

        在做音視頻網站審核的時候,發現分頁出現了重復記錄。原以為是自己程序出了問題,可仔細檢查了程序之后,并沒有發現有什么不對的地方,于是上網查了一下,原來是oracle
    分頁機制的問題,在oracle中,分頁是通過rownum函數來實現的,
    rownum順序號的生成是排序后生成的,例如下面這條sql:
    select * from user where rownum <= 20 and rownum > 10 order by userName
    按照我們正常的理解,這條sql查詢的是user表中按照userName升序后取其10~20條記錄,
    其實不然,oracle是排序后才生成rownum,理想情況下如userName在user表的值是唯一
    的或者userName在數據庫中被建了唯一索引,結果是正確的,但是如果userName的值存在
    大量重復記錄或者為空,就會出現問題重復記錄的情況。正確的sql應該這樣寫:
    select * from (select * from (select * from user order by userName)
    where rownum <= 20) where rownum >=10
    但是這并不能從根本上解決問題,為了避免這種情況,建議慎用oracle的排序功能,
    如果需要使用排序,一定要選擇那些建有唯一索引的字段。當然有時候我們可能需要對
    那些不是唯一索引的字段進行排序,這些字段的值可能大量重復也可能為空,怎么辦,
    這時候可以采用聯合字段排序,也就是排序字段中包含一個主鍵或不會重復的字段。

    Feedback

    # re: 使用hibernate對oracle數據庫中數據分頁出現重復記錄  回復  更多評論   

    2013-07-15 16:56 by 游客
    學習了!

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    posts - 146, comments - 143, trackbacks - 0, articles - 0

    Copyright © flustar

    主站蜘蛛池模板: 中文字幕无码免费久久9一区9| 亚洲成a人不卡在线观看| 亚洲AV无码之国产精品| 毛片免费在线播放| 亚洲欧美日韩综合久久久久| 成人A级毛片免费观看AV网站| 亚洲av一本岛在线播放| 日韩视频在线精品视频免费观看| 亚洲福利电影在线观看| 在线观看永久免费| 国产91在线|亚洲| 国产亚洲综合色就色| 韩国免费A级毛片久久| 亚洲高清国产AV拍精品青青草原 | 亚洲性无码一区二区三区| 国语成本人片免费av无码| 久久久久久亚洲精品影院| 曰皮全部过程视频免费国产30分钟 | 国产福利在线免费| 亚洲最大的成人网| 免费a级毛片无码a∨性按摩| 免费国产黄网站在线看| 在线A亚洲老鸭窝天堂| 亚欧免费无码aⅴ在线观看| 亚洲国产成人91精品| 97国免费在线视频| 亚洲视频中文字幕| 中文字幕无码视频手机免费看| 日本亚洲欧美色视频在线播放 | 国产男女猛烈无遮档免费视频网站| 黄色一级视频免费| 午夜亚洲国产理论秋霞| 暖暖免费高清日本中文| 免费无码又爽又黄又刺激网站| 久久精品国产亚洲一区二区| 免费三级毛片电影片| 无码 免费 国产在线观看91| 久久精品亚洲视频| 日韩免费视频播放| 久久国产免费观看精品| 亚洲AV永久无码天堂影院|