Sqlite LIMIT / OFFSETクエリ 質問する

Sqlite LIMIT / OFFSETクエリ 質問する

Sqlite に関して簡単な質問があります。これらの違いは何ですか?

Select * from Animals LIMIT 100 OFFSET 50

そして

Select * from Animals LIMIT 100,50

ベストアンサー1

2 つの構文形式は数字が逆になっているため、少し混乱します。

LIMIT <skip>, <count>

以下と同等です:

LIMIT <count> OFFSET <skip>

MySQLとPostgreSQLの構文と互換性があります。MySQLは両方の構文形式をサポートしており、ドキュメントOFFSETを使用した2番目の構文はPostgreSQLとの互換性を提供するためのものだと主張している。PostgreSQLドキュメント2番目の構文のみをサポートしていることを示しています。SQLite のドキュメント両方をサポートしていることを示し、混乱を避けるために 2 番目の構文を推奨します。

ちなみに、最初に ORDER BY を使用せずに LIMIT を使用すると、必ずしも意図した結果が得られるとは限りません。実際には、SQLite は行を何らかの順序で返しますが、これはおそらくファイル内での行の物理的な格納方法によって決まります。ただし、これは必ずしも希望する順序であるとは限りません。予測可能な順序を得る唯一の方法は、ORDER BY を明示的に使用することです。

おすすめ記事