SQLite LIMIT / OFFSET查询

我对Sqlite有一个简单的问题。这有什么区别:


Select * from Animals LIMIT 100 OFFSET 50


Select * from Animals LIMIT 100,50


Helenr
浏览 731回答 3
3回答

万千封印

这两种语法形式有些混乱,因为它们会颠倒数字:LIMIT <skip>, <count>等效于:LIMIT <count> OFFSET <skip>它与MySQL和PostgreSQL的语法兼容。MySQL支持这两种语法形式,其文档声称第二个带有OFFSET的语法旨在提供与PostgreSQL的兼容性。PostgreSQL 文档显示它仅支持第二种语法,SQLite文档显示它同时支持第二种语法,建议使用第二种语法以避免混淆。顺便说一句,在没有先使用ORDER BY的情况下使用LIMIT可能不会总给您想要的结果。实际上,SQLite将以某种顺序返回行,这可能取决于它们在文件中的物理存储方式。但这并不一定意味着它符合您想要的顺序。获得可预测订单的唯一方法是显式使用ORDER BY。

月关宝盒

后者是一种替代语法,但有一个警告:如果使用逗号而不是OFFSET关键字,则偏移量是第一个数字,限制是第二个数字。这种看似矛盾是故意的-使其与旧版SQL数据库系统的兼容性最大化。
打开App,查看更多内容
随时随地看视频慕课网APP