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中文網其他相關文章!