0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQLメモ:LIMIT と OFFSET でページングする

Last updated at Posted at 2025-09-11

今回使わなかったが、他にも構文があったのでメモ

SELECT * 
FROM works
ORDER BY work_date DESC
LIMIT 30 OFFSET 60;
  • works テーブルからデータを取得
  • work_date の降順(新しい日付が先)で並べる
  • 61件目から30件分を取り出す

LIMIT と OFFSET の意味

  • LIMIT n → 最大で n 件を取得
  • OFFSET m → 先頭から m 件スキップする

今回の例は:

  • OFFSET 60 → 先頭60件を飛ばす
  • LIMIT 30 → そこから30件取得
    → 結果は 「61〜90件目」

ページングのイメージ

「1ページに30件表示」の場合:

  • 1ページ目 … LIMIT 30 OFFSET 0
  • 2ページ目 … LIMIT 30 OFFSET 30
  • 3ページ目 … LIMIT 30 OFFSET 60 ← 今回のSQL

これで ページネーション が実現できる。

注意点

  • OFFSETが大きいと遅い
  • データベースは先頭から OFFSET 件を読み飛ばす必要がある
  • データ件数が大きいと無駄が増えてしまう

大量データにはカーソルベースが有効らしい。
次はそれを調べてみる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?