まあ、これは誰かにとって簡単なはずです---
データベース内の特定の行を選択しようとしています
SELECT * FROM customers LIMIT 10,20
しかし、常に20行を返します
何が起こっているのか、最小値に値がないのはなぜですか?
LIMIT X, Y
Y
は、 number から始まる結果を取得することを意味しますX+1
。
したがって、11 から 20 の値が必要な場合は、次を使用する必要があります。
LIMIT 10, 10
10件limit 10
のlmit 0, 10
結果
句の 2 番目の数値はLIMIT
、最後のインデックスではなく、返される行の数です。10 行のみが必要な場合は、クエリ制限句で に置き換えます20
。10
SELECT *
FROM customers
LIMIT 10, 10
Limit
2 つの引数を指定(x,y)
すると、 から行を取得することを意味しますx+1 to y
。MySQLマニュアルから:
LIMIT 句を使用して、SELECT ステートメントによって返される行数を制限できます。LIMIT は 1 つまたは 2 つの数値引数を取り、両方とも非負の整数定数でなければなりません (準備済みステートメントを使用する場合を除く)。
2 つの引数がある場合、最初の引数は返す最初の行のオフセットを指定し、2 番目の引数は返す行の最大数を指定します。最初の行のオフセットは 0 (1 ではない)です。
SELECT * FROM tbl LIMIT 5,10;
行 6 ~ 15 の取得 特定のオフセットから結果セットの最後までのすべての行を取得するには、2 番目のパラメーターに大きな数値を使用できます。
次のステートメントは、96 行目から最後の行までのすべての行を取得します。
SELECT * FROM tbl LIMIT 95,18446744073709551615;
引数が 1 つの場合、値は結果セットの先頭から返す行数を指定します。
SELECT * FROM tbl LIMIT 5;
最初の 5 行を取得する つまり、LIMIT row_count は LIMIT 0, row_count と同じです。