サーチ…


構文

  • SELECT column_1 [、column_2]
    FROM table_1
    ORDER BY order_column
    LIMIT row_count [OFFSET row_offset]
  • SELECT column_1 [、column_2]
    FROM table_1
    ORDER BY order_column
    LIMIT [row_offset、] row_count

備考

「制限」は「テーブルの行の最大数」を意味します。

「オフセット」 row番号からのピックを意味します(プライマリキー値またはフィールドデータ値と混同しないでください)

リミットとオフセットの関係

次のusersテーブルを検討してください。

id ユーザー名
1 ユーザー1
2 User2
3 ユーザー3
4 ユーザー4
5 User5

SELECT問合せの結果セットの行数を制限するために、 LIMIT句を1つまたは2つの正の整数とともに引数として使用できます(ゼロを含む)。

1つの引数を持つLIMIT

1つの引数を使用すると、結果セットは次のように指定された数に制限されます。

SELECT * FROM users ORDER BY id ASC LIMIT 2
id ユーザー名
1 ユーザー1
2 User2

引数の値が0場合、結果セットは空になります。

また、表示される結果セットの最初の行を指定するためには、 ORDER BY節が重要であることに注意してください(別の列で並べ替える場合)。

2つの引数を持つLIMIT

LIMIT句で2つの引数を使用する場合は、次のようになります。

  • 最初の引数は、結果セットの行が表示される行を表します。この数値は、制約のある結果セットの最初の行の前の行を表すため、 オフセットと呼ばれることがよくあります。これにより、引数は値として0を受け取ることができ、非制約付き結果セットの最初の行を考慮に入れることができます。
  • 2番目の引数は結果セットに返される行の最大数を指定します(1つの引数の例と同様)。

したがって、クエリ:

SELECT * FROM users ORDER BY id ASC LIMIT 2, 3

次の結果セットを示します。

id ユーザー名
3 ユーザー3
4 ユーザー4
5 User5

offset引数が0場合、結果セットは1つの引数LIMIT句に相当することに注意してください。これは、次の2つのクエリを意味します。

SELECT * FROM users ORDER BY id ASC LIMIT 0, 2

SELECT * FROM users ORDER BY id ASC LIMIT 2

同じ結果セットを生成する:

id ユーザー名
1 ユーザー1
2 User2

OFFSETキーワード:代替構文

2つの引数を持つLIMIT句の別の構文は、次のように最初の引数の後にOFFSETキーワードを使用することです。

SELECT * FROM users ORDER BY id ASC LIMIT 2 OFFSET 3

このクエリは、次の結果セットを返します。

id ユーザー名
3 ユーザー3
4 ユーザー4

この代替構文では、引数の位置が切り替えられていることに注意してください。

  • 最初の引数は結果セットで返される行数を表します。

  • 2番目の引数はオフセットを表します。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow