はじめに
単純なSELECTクエリで検索結果を全て表示させると、登録されているデータが莫大であればあるほど検索結果の表示に時間がかかり、場合によってはタイムアウトエラーになってしまいます。
処理が重くなってサービスが止まってしまうなどの影響が発生することもあるようです。
結果を絞って検索する手段の一つとして、WHERE句で条件を指定することも一つの手です。
今回は、LIMIT・OFFSETを使うことで特定の範囲に絞って結果を確認することを学習します!
LIMIT句
取得するデータの上限を指定することができます
例)usersテーブルに登録されている成人の最新10名を確認する
SELECT *
FROM users
WHERE age >= 18
ORDER BY created_at DESC
LIMIT 10;
OFFSET句
指定した件数分、先頭のデータをスキップしてデータを取得できます
例)usersテーブルに登録されている成人の最新11人目~20人目の10名を確認する
SELECT *
FROM users
WHERE age >= 18
ORDER BY created_at DESC
LIMIT 10 OFFSET 10;
LIMITとOFFSETを併用し、アプリ側でOFFSET値を計算して結果を取得することでページネーションを実装できます。