LIMIT

LIMIT句についての詳細な解説と使用例。取得件数を制限してページングを実現する方法を学べます。

説明

LIMIT は SELECT の結果として返す行数を制限するための句です。
OFFSET と組み合わせることでページネーションを実現できます。大量データの取得を抑えてパフォーマンスを確保する上で欠かせない構文です。

基本構文
quest.sql
Loading...
例文

商品を最初の10件だけ取得

quest.sql
Loading...
— RESULT

クエリを実行してください

価格が高い順に上位5件を取得

quest.sql
Loading...
— RESULT

クエリを実行してください

21件目から10件を取得(3ページ目のイメージ)

quest.sql
Loading...
— RESULT

クエリを実行してください

最新の注文を1件だけ取得

quest.sql
Loading...
— RESULT

クエリを実行してください

注意点
  • ORDER BY と組み合わせないと取得順が不定

    LIMIT だけでは返される行の順序が保証されない。必ず ORDER BY を併用すること。

  • OFFSET が大きいとパフォーマンスが低下する

    OFFSET は先頭から読み飛ばすため、値が大きくなるほど遅くなる。大量ページングはカーソル方式を検討。

  • MySQLでは LIMIT n, m 形式も使える

    LIMIT 20, 10 は LIMIT 10 OFFSET 20 と同じ意味。ただし LIMIT count OFFSET offset の形式の方が可読性が高い。

使用シーン
  • 一覧ページのページネーションを実装するとき
  • ランキングの上位N件を取得するとき
  • 最新レコードを1件だけ取得するとき
  • データ量が多いテーブルの動作確認をするとき
このクエリを実践するには?

#7 最安商品の取得

初級SELECT基本ログインして解除

この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。

関連クエリ
QSQL Quest