首頁 > 資料庫 > mysql教程 > mysql order by limit的坑怎麼解決

mysql order by limit的坑怎麼解決

WBOY
發布: 2023-05-27 11:03:22
轉載
1585 人瀏覽過

分頁查詢的時候遇到的坑:

# 發現的問題: 對單一無索引的欄位進行排序後limit .發現當被排序欄位有相同值時並且在limit範圍內,取的值並不是正常排序後的值,

也就是說,當排在第N行的資料可取key1、 key2 時 , 排序結果可能是key1,也可能是key2。

mysql order by limit的坑怎么解决

# 排序 limit 結果 (排序鍵無索引) 
按cnt取key_word分別前三結果:

mysql order by limit的坑怎么解决

原文:

If multiple rows have identical values in the ORDER BY columns, the server 是 have identical values in the ORDER BY columns, the server is free to return those rows in any order, and may do so differently depending on the overall execution plan. In ort words, the sorts sorder reter to the nonordered columns.
是說如果order by的欄位有相同的值時, mysql會隨機選取這些行,具體根據執行計畫有所不同。

解決: order by 的欄位包含一個索引欄位
此處增加主鍵id為排序列

以上是mysql order by limit的坑怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板