<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

    主站蜘蛛池模板: 在线观看免费a∨网站| 在线看片v免费观看视频777| 永久免费看mv网站入口| 亚洲国产精品人久久电影| 成人亚洲综合天堂| 日韩色日韩视频亚洲网站| 国产精品国产午夜免费福利看| 亚洲丶国产丶欧美一区二区三区| 女人张开腿等男人桶免费视频| 亚洲熟妇av午夜无码不卡| 免费国产成人午夜在线观看| 久久久久久亚洲av成人无码国产| 日本免费污片中国特一级| 久久精品国产亚洲77777| 午夜福利不卡片在线播放免费| 国产91在线|亚洲| 小小影视日本动漫观看免费| 黄色免费网址大全| 国产亚洲av片在线观看播放| 最近2019中文字幕免费大全5| 亚洲午夜久久久精品电影院| 永久黄网站色视频免费| 亚州**色毛片免费观看| 亚洲v高清理论电影| 国产成在线观看免费视频| 亚洲欧洲日韩国产综合在线二区| 99热在线精品免费播放6| 亚洲理论电影在线观看| 无码精品人妻一区二区三区免费看| 亚洲妓女综合网99| 日本中文一区二区三区亚洲| a级男女仿爱免费视频| 久久精品亚洲AV久久久无码 | 一二三四影视在线看片免费| 久久亚洲精品无码av| 国产亚洲精品美女久久久| 在线观看av永久免费| h片在线播放免费高清| 91亚洲一区二区在线观看不卡| 2021免费日韩视频网| ww在线观视频免费观看w|