本記事では、LIMITの使い方を解説します。
前回はORDER BYでの並び替え方法について解説しました
今回では、LIMITを使ってのデータ数制限方法についてみていきましょう。
LIMITでのデータ数制限、ができるようになると、必要な数のデータから抽出して利用することができるようになります。
SQLのLIMITとは?
LIMITとは、SQLにおいて抽出するデータ数を絞り込むもののことです。
LIMITを使うことで、データの表示件数の設定ができるようになります。
たとえば、10件あるデータの最初の3件のみを表示することが可能です。
このように、データ数を絞り込んで表示させる際に必要なのが、LIMITですね。
SQLのLIMITの使い方
LIMITの具体的な使い方についてみていきましょう。
次の項目に従って解説していきます。
- LIMITでデータ件数を絞り込む
- WHEREで抽出したデータの件数を絞り込む
- LIKE演算子で抽出したデータの件数を絞り込む
- ORDER BYで並び替えた後にデータの件数を絞り込む
なお、今回は第1回目の記事で作成したテーブルを使って解説します。第1回目の記事で演習用のテーブルを作っていない方は、【SQL入門編1】初心者必見!SQLのクエリの書き方を学ぼうを読んで予め作成してくださいね。
LIMITでデータ件数を絞り込む
LIMITで実際にデータ件数を絞り込む方法をみていきましょう。
○コード例
SELECT name FROM TEST.Student LIMIT 5;
○実行結果
![](https://www.canit.jp/wp-content/uploads/2021/04/828859ccdc143d5542d4ed11bfc512ec-1024x570.png)
上記のコードは後ろに「LIMIT 5」とつけていますね。
LIMITの使い方は単純で「LIMIT {数値}」と記述することで、データ件数をその数にすることが可能です。
今回は「5」ですので、実行結果をみて分かる通り、5件しか表示がされません。
これがLIMITの基本的な使い方です。
○コード例
SELECT name FROM TEST.Student LIMIT 8;
○実行結果
![](https://www.canit.jp/wp-content/uploads/2021/04/84e262c4210d5cea45c7c7db49de05f0-1024x640.png)
上記のでは「LIMIT 8」としているので、データ件数が8件となっています。
WHEREで抽出したデータの件数を絞り込む
WHEREとLIMITを組み合わせることで、WHEREでデータを抽出した後に、表示制限をかけることが可能です。
○コード例
SELECT name FROM TEST.Student WHERE age = 12 LIMIT 1;
○実行結果
![](https://www.canit.jp/wp-content/uploads/2021/04/7420260e8b9ea5856842d993bdb62244-1024x437.png)
上記のコードでは、WHERE句によって年齢が12歳の場合のみ表示しています。
しかし、「LIMIT 1」となっているので、WHEREで抽出したうちの、最初の1件しか表示されませんね。
このようにWHEREとLIMITを組み合わせることも可能です。
なお、LIMITで指定する数値に関してですが、元々のデータ件数より多い数値を指定すると、元々のデータ件数しか表示されません。
○コード例
SELECT name FROM TEST.Student WHERE age = 12 LIMIT 3;
○実行結果
![](https://www.canit.jp/wp-content/uploads/2021/04/9db58e5995f72744ec7dc6db66676c81-1024x477.png)
上記のコードは「LIMIT 3」と記述していますが、12歳以上のデータは元々2件しかないため、LIMITを使っても意味がなく2件がそのまま表示されています。
LIKE演算子で抽出したデータの件数を絞り込む
続いて、LIKE演算子で抽出したデータの件数をLIMITで絞り込んでみましょう。
○コード例
SELECT name FROM TEST.Student WHERE birthday LIKE "2000-%"LIMIT 1;
○実行結果
![](https://www.canit.jp/wp-content/uploads/2021/04/a1c413aebaccbbde670197fae11f61be-1024x453.png)
やり方は先程とほとんど一緒です。
LIKE演算子を使ってbirthdayが「2000-」から始まるものを抽出しています。
そのうちの最初の1件のみを抽出しているという訳ですね。
このようにLIKE演算子とLIMITも組み合わせることが可能です。
ORDER BYで並び替えた後にデータの件数を絞り込む
最後にORDER BYで並び替えた後に、データの件数を絞り込む方法をみていきましょう。
○コード例
SELECT name FROM TEST.Student ORDER BY age ASC LIMIT 1;
○実行結果
![](https://www.canit.jp/wp-content/uploads/2021/04/3e9a9f8fb05491526744935eee5603e8-1024x457.png)
上記のコードは ORDER BYによって年齢順(昇順)に並び替えています。
そして、並び替えた後にLIMITによって、一番上のデータのみを表示しているのです。
つまり、ORDER BYとLIMITを組み合わせることで、一番年齢が低いものを抽出しています。
補足:検索結果から重複するものを除外する方法
LIMITの話題からは少し逸れますが、検索結果が重複するものを除外する方法についても、覚えておきましょう。
たとえば、以下のように、SQLを使った結果、検索結果が重複しているときがあると思います。
○コード例
SELECT age FROM TEST.Student ORDER BY age ASC;
○実行結果
![](https://www.canit.jp/wp-content/uploads/2021/04/c064959a14a1d4f3c1d84753a5036c5f-1024x640.png)
この場合は「DISTINCT」という関数を使うことで、重複を除外することが可能です。
○コード例
SELECT DISTINCT(age) FROM TEST.Student ORDER BY age ASC;
○実行結果
![](https://www.canit.jp/wp-content/uploads/2021/04/4c0afb5be7d948ff6e7b5af6e30b876c-1024x605.png)
これで、データベースに含まれているageのデータを重複せずに取得できましたね。
まとめ
本記事では、LIMITの使い方について解説しました。
LIMITでのデータ数制限方法がお分かり頂けたかと思います。
LIMITは業務でも多く使われるので、使い方を覚えておきましょう。
特にORDER BYで並び替えた後にLIMITを使うのはありがちです。
次回は、SUMなどの集計関数の使い方を解説していきます。