<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

    主站蜘蛛池模板: 一区二区免费视频| 亚洲国产午夜中文字幕精品黄网站| 亚洲一区欧洲一区| 亚洲AV无码成H人在线观看| 国产亚洲免费的视频看| 亚洲 日韩经典 中文字幕 | 好紧我太爽了视频免费国产| 亚洲色偷偷av男人的天堂| 国产精品无码素人福利免费 | 久久久久久国产a免费观看黄色大片| 久久亚洲精品无码网站| 亚洲大尺度无码专区尤物| 野花高清在线观看免费3中文| 一级一级一片免费高清| 亚洲沟沟美女亚洲沟沟| 四虎精品亚洲一区二区三区| 4444www免费看| 亚洲精品黄色视频在线观看免费资源| 日韩精品亚洲人成在线观看| 亚洲AV无码乱码在线观看性色扶| 91成人免费观看| japanese色国产在线看免费| 亚洲中文字幕日本无线码| 亚洲人成网亚洲欧洲无码久久| 天天天欲色欲色WWW免费| 精品视频一区二区三区免费| 国产精品亚洲一区二区三区 | 四虎成人精品永久免费AV| 国产亚洲精品美女久久久久久下载| 亚洲视频欧洲视频| 亚洲综合伊人久久大杳蕉| 在线看片无码永久免费aⅴ| 久久国产乱子伦免费精品| rh男男车车的车车免费网站| 亚洲乱码av中文一区二区| 久久精品国产亚洲av水果派| 国产福利电影一区二区三区,亚洲国模精品一区 | 黄色网址免费在线观看| 亚洲欧美日韩国产成人| 亚洲视频一区网站| 亚洲AV无码成人网站久久精品大|