我是MySQL的新手,但我已經使用了一段時間的Oracle。我對MySQL的LIMIT
關鍵字有點困惑。這個關鍵字是否意味着每次執行查詢時返回的數據的順序都是相同的?如果將更多數據添加到影響查詢的表中,該怎麼辦?如果沒有排序條款存在,數據如何排序?MySQL的LIMIT關鍵字是否保證返回數據的順序?
1
A
回答
4
不,LIMIT
是非確定性的。排序取決於數據,使用的索引,mysql版本之間的內部更改,磁盤上的數據順序等。
通常情況下,您會將LIMIT
與ORDER BY
組合起來以避免這種情況。
1
除非您指定ORDER BY,否則無法保證首先返回哪些行。
但實際上,訂單通常會與聚集索引訂單相匹配,並且在調用之間不會改變。不要依賴這種行爲。
2
LIMIT不會對返回的數據施加任何排序。
不保證每次執行限制時都會返回相同的順序,除非使用ORDER BY子句。如果插入數據,這可能會影響有序和無序結果的結果。
如果您省略了ORDER BY子句,它基本上由數據庫決定排序,並且可能基於表的索引方式。隨着表格被重新索引和/或添加更多數據,這將隨着時間而改變。
相關問題
- 1. Directory.GetDirectories()返回的目錄順序是否有保證?
- 2. 是否保證Dictionary.Values按照添加的順序返回元素?
- 3. INSERT RETURNING是否保證以「正確」的順序返回事物?
- 4. Perl是否保證返回一致性排序的散列鍵?
- 5. LIMIT準備語句的MySQL關鍵字
- 6. mclapply是否保證按順序返回結果?
- 7. Ajax請求是否保證按發送順序返回?
- 8. Asana故事是否保證按時間順序返回?
- 9. UPDATE查詢,LIMIT和返回順序
- 10. Jsoup的select(CSS_selector)函數是否保證以文檔順序返回節點?
- 11. 是否從C#的Regex.Matches返回的數組的順序保證按照文本的順序?
- 12. 是否保證SKNode.nodesAtPoint的順序?
- 13. std :: list的順序是否有保證?
- 14. FieldInfo [] Type.GetFields()的順序是否有保證?
- 15. 是否保證KeyListeners的調用順序?
- 16. 使用帶有LIMIT和SKIP的Cypher:Cypher是否總是以相同的順序返回數據?
- 17. 根據關鍵字的優先順序返回大多數匹配結果
- 18. LIMIT是否在SQLITE中保留排序順序?
- 19. 元素是否保證以它們在DOM中出現的順序返回?
- 20. MySQL LIMIT 1返回空值
- 21. 是否保證初始化順序
- 22. 向量元素是否保證順序?
- 23. Amazon S3是否保證書寫順序?
- 24. XMLEncoder是否保證編碼對象字段的固定順序?
- 25. 變量定義中關鍵字的順序是否重要?
- 26. 靜態和易變關鍵字的順序是否重要?
- 27. PostgreSQL的:LIMIT +順序返回不一致的結果
- 28. SQLite的定製順序返回數據
- 29. 不正確的數據順序返回
- 30. 如果沒有結果,MySQL SELECT *和LIMIT 1是否返回FALSE?