<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| 色在线亚洲视频www| 2021在线永久免费视频| 亚洲精品不卡视频| 69视频免费观看l| 亚洲日韩在线视频| 毛片a级毛片免费播放100| 亚洲永久网址在线观看| 免费无码又爽又刺激毛片| 直接进入免费看黄的网站| 亚洲男人第一无码aⅴ网站 | 国产精品久久久亚洲| 久久aa毛片免费播放嗯啊| 亚洲国产视频网站| 男女交性永久免费视频播放 | 国产无遮挡又黄又爽免费网站| 亚洲线精品一区二区三区| 无码人妻精品中文字幕免费| 亚洲精品亚洲人成在线麻豆| 成人免费视频软件网站| 免费在线观看一区| 亚洲免费精彩视频在线观看| 亚洲成av人在线视| 国产人成免费视频网站| 亚洲国产美女精品久久久| 亚洲真人无码永久在线| 免费人成在线观看网站品爱网 | 午夜不卡AV免费| 久热综合在线亚洲精品| 成人一a毛片免费视频| 国产免费区在线观看十分钟| 中文字幕亚洲综合久久| 国产精品另类激情久久久免费 | 国产亚洲免费的视频看| 亚洲sss综合天堂久久久| 亚洲国产精品丝袜在线观看| 67pao强力打造高清免费| 国产午夜亚洲精品不卡| 久久亚洲精精品中文字幕| 国产在线a不卡免费视频|