SQLite 中哪种 LIMIT 子句语法正确:OFFSET 还是 OFFSET 和 ROW COUNT?
SQLite 提供两种语法来限制和偏移查询结果:
<code>LIMIT <跳过>, <数量></code>
以及
<code>LIMIT <数量> OFFSET <跳过></code>
这两种语法形式的区别可能令人困惑,因为它们的数字顺序相反。
第一种语法形式 <code>LIMIT <跳过>, <数量></code> 等效于:
<code>LIMIT <数量> OFFSET <跳过></code>
它与 MySQL 和 PostgreSQL 的语法兼容。MySQL 支持这两种语法形式,而 PostgreSQL 只支持第二种语法。SQLite 支持这两种语法形式,但建议使用第二种语法以避免混淆。
例如,以下查询将跳过前 50 行并返回接下来的 100 行:
<code>SELECT * FROM Animals LIMIT 100 OFFSET 50</code>
务必注意,在不首先使用 ORDER BY
的情况下使用 LIMIT
并不总是能得到预期的结果。SQLite 将按某种顺序返回行,该顺序可能由它们在文件中的物理存储位置决定。但是,此顺序并非保证具有意义或一致性。获得可预测顺序的唯一方法是显式使用 ORDER BY
。
以上是SQLite LIMIT 子句:OFFSET 还是 OFFSET 和 ROW COUNT?的详细内容。更多信息请关注PHP中文网其他相关文章!