大型のサイトでは例えば顧客の情報ひとつ取っても何万、何十万という膨大なデータが入っています。
Webシステム上でデータを表示させる際に、全てのデータを表示させてしまったら大変なことになりますよね。
スクロールが追い付かん!
そんな時には「LIMIT」句で取り出すデータの範囲を制限することができます。
例えばGoogle検索などは、膨大なサイトの中から1ページに10件程度表示させていますよね。
今回はこの「LIMIT」について解説していきます。
▼youtube
LIMITの基本 SQLの書き方
LIMIT 開始位置, 件数
LIMIT句では検索結果の「開始位置」件目から「件数」件だけのデータを選択して取り出すことができます。
LIMITの開始位置は「0」
LIMIT句でデータを取り出す際の開始位置は「0」から始まります。
つまり3番目からのデータを取り出したい場合は
LIMIT 2,〇
となります。
Javaでいうところの「配列」と同じね。
LIMITの 0 , は省略できる
データのはじめから5つのデータを取り出す際は
LIMIT 0,5;
となりますが、このはじめの0,は省略することができます。
なので
LIMIT 5;
だけで大丈夫です。
最高得点の生徒の情報を表示する方法
SELECT * FROM students
ORDER BY entry_exam DESC
LIMIT 1;
ORDER BYとDESCで降順に並べて
LIMIT 1;
で1件だけ取り出せば最高得点の生徒を表示させることができます。
最高得点の生徒の名前も表示する方法
サブクエリを利用する
SELECT * FROM students
WHERE entry_exam = (
SELECT MAX(entry_exam)
FROM students
);
このようにWHERE句の中にSELECT文を入れることができます。
SQL文の中に入るSQL文のことをサブクエリといいます。
MySQL データの範囲を制限する LIMITまとめ
LIMIT句は結構利用されるSQL文だと思います。
これを利用して、自分だけの検索システムを作ったり美味しいお店を点数で記録しておいて、上位だけ取り出すなんてシステムを作ることができそうですね。