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 オフセット, 取得件数」の形式で指定でき、ページネーション(ページ分割表示)などを実装する際にも非常に便利です。大量データから必要な範囲だけを取り出したいときは、ぜひ活用してください。
-
MySQLのSELECTクエリで別テーブルに存在しない行を抽出する方法(NATURAL LEFT JOIN活用)
MySQLのSELECTクエリで別テーブルに存在しない行を抽出する方法データベースの運用では、「片方のテーブルには存在するが、もう片方のテーブルには存在しないレコード」を抽出したい場面がよくあります。この記事では、2つのテーブルを作成し、NATURAL LEFT JOINを活用して差分の行を取得する方法を、実際のサンプルコードとともにわかりやすく解説します。1. 最初のテーブルを作成するまずは比較元となる最初のテーブルを作成します。 mysql> create table FirstTableDemo -> ( -> id int, -> name v
-
MySQLでテーブルの最後の10件のレコードを取得する方法
MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected