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

mysql order by limit的坑怎麼解決

WBOY
WBOY轉載
2023-05-27 11:03:221557瀏覽

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

# 發現的問題: 對單一無索引的欄位進行排序後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刪除