MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで取得する行数を制限するには?LIMIT句の使い方を解説

MySQLで大量の行を扱う際、必要なレコードだけを効率的に取得したいケースはよくあります。そんなときに役立つのが LIMIT 句です。LIMITを使えば、取得するレコード数を制限したり、先頭の行をスキップしたりすることができます。

サンプルテーブルの作成

まず、動作確認用のテーブルを作成しましょう。

mysql> create table DemoTable
(
    Id int,
    Name varchar(20)
);
Query OK, 0 rows affected (0.53 sec)

レコードの挿入

次に、INSERT文を使ってテーブルにレコードを挿入します。

mysql> insert into DemoTable values(10,'John');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(11,'Chris');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(12,'David');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(13,'Carol');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(14,'Mike');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(15,'Sam');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values(16,'Robert');
Query OK, 1 row affected (0.14 sec)

テーブル内の全レコードを表示

SELECT文ですべてのレコードを表示してみます。

mysql> select *from DemoTable;

実行結果は以下のとおりです。

+------+--------+
| Id   | Name   |
+------+--------+
| 10   | John   |
| 11   | Chris  |
| 12   | David  |
| 13   | Carol  |
| 14   | Mike   |
| 15   | Sam    |
| 16   | Robert |
+------+--------+
7 rows in set (0.00 sec)

LIMIT句で行数を制限する

それでは、LIMIT句を使って取得する行を絞り込んでみましょう。以下のクエリでは limit 2,4 を指定しています。これは「最初の2行をスキップし、その後の4行を取得する」という意味になります。

mysql> select *from DemoTable limit 2,4;

実行結果は以下のとおりです。

+------+-------+
| Id   | Name  |
+------+-------+
| 12   | David |
| 13   | Carol |
| 14   | Mike  |
| 15   | Sam   |
+------+-------+
4 rows in set (0.00 sec)

まとめ

LIMIT句は「limit オフセット, 取得件数」の形式で指定でき、ページネーション(ページ分割表示)などを実装する際にも非常に便利です。大量データから必要な範囲だけを取り出したいときは、ぜひ活用してください。

  1. MySQLのSELECTクエリで別テーブルに存在しない行を抽出する方法(NATURAL LEFT JOIN活用)

    MySQLのSELECTクエリで別テーブルに存在しない行を抽出する方法データベースの運用では、「片方のテーブルには存在するが、もう片方のテーブルには存在しないレコード」を抽出したい場面がよくあります。この記事では、2つのテーブルを作成し、NATURAL LEFT JOINを活用して差分の行を取得する方法を、実際のサンプルコードとともにわかりやすく解説します。1. 最初のテーブルを作成するまずは比較元となる最初のテーブルを作成します。 mysql> create table FirstTableDemo -> ( -> id int, -> name v

  2. MySQLでテーブルの最後の10件のレコードを取得する方法

    MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected