我對Sqlite有一個簡單的問題。這有什么區(qū)別:Select * from Animals LIMIT 100 OFFSET 50和Select * from Animals LIMIT 100,50
3 回答

萬千封印
TA貢獻1891條經驗 獲得超3個贊
這兩種語法形式有些混亂,因為它們會顛倒數字:
LIMIT <skip>, <count>
等效于:
LIMIT <count> OFFSET <skip>
它與MySQL和PostgreSQL的語法兼容。MySQL支持這兩種語法形式,其文檔聲稱第二個帶有OFFSET的語法旨在提供與PostgreSQL的兼容性。PostgreSQL 文檔顯示它僅支持第二種語法,SQLite文檔顯示它同時支持第二種語法,建議使用第二種語法以避免混淆。
順便說一句,在沒有先使用ORDER BY的情況下使用LIMIT可能不會總給您想要的結果。實際上,SQLite將以某種順序返回行,這可能取決于它們在文件中的物理存儲方式。但這并不一定意味著它符合您想要的順序。獲得可預測訂單的唯一方法是顯式使用ORDER BY。

月關寶盒
TA貢獻1772條經驗 獲得超5個贊
后者是一種替代語法,但有一個警告:
如果使用逗號而不是OFFSET關鍵字,則偏移量是第一個數字,限制是第二個數字。這種看似矛盾是故意的-使其與舊版SQL數據庫系統(tǒng)的兼容性最大化。
- 3 回答
- 0 關注
- 764 瀏覽
添加回答
舉報
0/150
提交
取消