「LIMIT 0、1」と「LIMIT 1」に違いはありますか?


15

私は最近、これらの表記法が異なるサンプルコードに出くわしました。

SELECT * FROM table LIMIT 0, 1
SELECT * FROM table LIMIT 1

私が間違っていない場合、最初の引数はオフセットと見なされる必要があります。これら2つのクエリの目的は、選択を最初の行までに制限することです table

オフセットを除外するときにマイナスの影響はありますか?そもそもそれを除外する方法はありますか?または、クエリを誤解しましたか?


3
いいえ、あなたはそれを正しく理解しました、それらは同等です。これも:LIMIT 1 OFFSET 0です。ただし、そうでない特定の理由がない限り、ORDER BYを持つクエリには実際に含める必要がありますLIMIT
ypercubeᵀᴹ

回答:


13

ドキュメントは言います:

この  LIMIT 句を使用して、SELECT 文によって返される行の数を制限できます  。 LIMIT 1つまたは2つの数値引数を取ります。両方とも非負の整数定数でなければなりません(準備済みステートメントを使用する場合を除く)。

引数が2つある場合、最初の引数は返す最初の行のオフセットを指定し、2番目の引数は返す行の最大数を指定します。The offset of the initial row is 0 (not 1)

このLIMIT句はSELECT、結果セットの行数を制限するためにステートメントで使用されます。このLIMIT句は、1つまたは2つの引数を受け入れます。両方の引数の値は、ゼロまたは正の整数定数でなければなりません。

以下は、LIMIT2つの引数を持つ句の構文を示しています。

SELECT * FROM tbl
LIMIT offset, count;

LIMIT句でオフセットとカウントの意味を見てみましょう。

  • offset指定返される最初の行のオフセット。最初の行のオフセットは1ではなく0です。
  • count復帰への最大行数を指定します。

LIMIT1つの引数で使用する場合、この引数は結果セットの先頭から返される最大行数を指定するために使用されます。

SELECT * FROM tbl LIMIT count;

上記のクエリは、LIMIT2つの引数を受け入れる句を含む次のクエリと同等です。

SELECT * FROM tbl LIMIT 0, count;

LIMIT多くの場合で使用する句ORDER BY節。最初に、ORDER BY句を使用して特定の基準に基づいて結果セットをソートし、次にLIMIT句を使用して最小値または最大値を見つけます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.