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基本ログインして解除
この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。
関連クエリ