問題 1
productsテーブルをpriceの降順(高い順)で全件取得してください
📖 解説参考資料
ORDER BY で並び替え
データを特定のカラムで並び替えるには ORDER BY を使います。ORDER BY を指定しない場合、取得順序は保証されません。一貫した順序が必要なときは必ず指定しましょう。
SELECT *
FROM products
ORDER BY price DESC;
ASC(昇順):小さい順・古い順(省略するとデフォルトでASC)DESC(降順):大きい順・新しい順
複数カラムで並び替え
カンマで区切ると「第1優先→同じ場合は第2優先」の順に並べられます。
SELECT *
FROM products
ORDER BY category ASC, price DESC;
LIMIT で件数を制限
取得する件数を制限するには LIMIT を使います。大量データを全件取得せず先頭N件だけ確認したいときに便利です。
SELECT *
FROM products
LIMIT 5;
OFFSET でスキップ(ページネーション)
OFFSET で先頭から何件スキップするかを指定できます。Webサービスのページ送り機能でよく使われます。
-- 1ページ目(1〜5件目)
SELECT * FROM products LIMIT 5 OFFSET 0;
-- 2ページ目(6〜10件目)
SELECT * FROM products LIMIT 5 OFFSET 5;
⚠️ よくあるミス:ORDER BY なしの LIMIT
ORDER BY なしで LIMIT を使うと、「どの5件が返ってくるか」はDBに依存して不定になります。「上位5件」を取りたいなら必ず ORDER BY とセットで使いましょう。
WHERE + ORDER BY + LIMIT の組み合わせ
SELECT name, price FROM products
WHERE category = 'PC'
ORDER BY price DESC
LIMIT 3;
💼 実務での使いどころ
「売上ランキングTOP10」「最新の注文10件」「価格が安い順に5件だけ表示」など、ランキング表示やページネーションはWebサービスで必須の機能です。
「売上ランキングTOP10」「最新の注文10件」「価格が安い順に5件だけ表示」など、ランキング表示やページネーションはWebサービスで必須の機能です。
ORDER BY + LIMIT の組み合わせは毎日のように使います。