久久国产精品视频-麻豆av电影-天天看天天操-婷婷精品视频-精品成人一区二区-韩国精品久久久-女尊高h男高潮呻吟-av在线播放一区-av在线资源观看-亚洲欧美日韩国产一区二区-91色九色-欧美国产一二三区-av番号在线-国产人成午夜免电影费观看-狠狠操 av

亚洲一区中文在线,色姑娘av,精品国产91久久久

MYSQL 使用ORDER BY 和 limit 連用的隱藏bug

童海兵 2018-03-01 6861 次

身為一個php的開發者,使用數據庫是必不可少的。我們日常會用的一些數據的查詢啊,但是因為有的表的數據太大 就必不可少的需要進行limit函數的使用。當然 單純的limit使用沒有任何的問題,可以大膽的使用。但是在和 ORDER BY一起連用的時候 在某些特殊的情況下就會出現一些錯誤。就是在ORDER BY后 有多個值,這種情況下再使用limit 就可能會出現數據重復的問題。

造成這種問題的原因是因為ORDER BY過后的值,是隨機的,依賴于對應的執行計劃然后返回。而limit滿足后就直接返回不會對剩余的進行排序。所以會出現數據重復的問題。

 

看實例:

1.png

 

這個有 18條數據;其中 18號 有11條數據;(沒有問題)

 我們拆分查看;

 

2.png

 

3.png

 

4.png

 

其中有三條重復的數據,所以這里就會隱藏一個bug。

處理方法: 增加一個ORDER BY 排序(就是保證同一個排序條件的值 要小于 limit的值就好 比如id,這個可以具體的對待)。



 

 

 

 


掃二維碼關注諾千科技
  • 安徽諾千科技有限公司
  • 19909697910 / 15656989941
  • 0551-65285599 / 0551-65428099
  • 330592165
  • http://www.fscomfort.com.cn/
  • 地址:安徽省合肥市高新區創新大道2700號路歌大廈A座6樓
關鍵詞   數據庫 limit order by
分享 0

免費咨詢

CONTACT NUOQIAN

如果你認同“術業有專攻”的理念,請給我們留言,告知你的需求,
我們會提供專業的互聯網解決方案。

您可提交您的疑問或直接咨詢~




您也可以直接咨詢

15148978978  /  15148978978  /  15148978978