Welche LIMIT-Klausel ist in SQLite syntaktisch korrekt: OFFSET oder OFFSET und ROW COUNT?
SQLite bietet zwei Syntaxen zum Begrenzen und Versetzen von Abfrageergebnissen:
<code>LIMIT <跳过>, <数量></code>
und
<code>LIMIT <数量> OFFSET <跳过></code>
Der Unterschied zwischen diesen beiden grammatikalischen Formen kann verwirrend sein, da ihre Nummern in umgekehrter Reihenfolge sind.
Die erste grammatikalische Form <code>LIMIT <跳过>, <数量></code> entspricht:
<code>LIMIT <数量> OFFSET <跳过></code>
Es ist syntaxkompatibel mit MySQL und PostgreSQL. MySQL unterstützt beide Syntaxformen, während PostgreSQL nur die zweite Syntax unterstützt. SQLite unterstützt beide Syntaxformen, es wird jedoch empfohlen, die zweite Syntax zu verwenden, um Verwirrung zu vermeiden.
Beispielsweise überspringt die folgende Abfrage die ersten 50 Zeilen und gibt die nächsten 100 Zeilen zurück:
<code>SELECT * FROM Animals LIMIT 100 OFFSET 50</code>
Es ist wichtig zu beachten, dass die Verwendung von ORDER BY
ohne vorherige Verwendung von LIMIT
nicht immer die erwarteten Ergebnisse liefert. SQLite gibt Zeilen in einer bestimmten Reihenfolge zurück, die möglicherweise davon abhängt, wo sie physisch in der Datei gespeichert sind. Es kann jedoch nicht garantiert werden, dass diese Reihenfolge sinnvoll oder konsistent ist. Die einzige Möglichkeit, eine vorhersehbare Reihenfolge zu erhalten, besteht darin, ORDER BY
explizit zu verwenden.
Das obige ist der detaillierte Inhalt vonSQLite LIMIT-Klausel: OFFSET oder OFFSET und ROW COUNT?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!