MySQLでテーブルから特定の行を抽出するクエリの書き方
MySQLでは、WHERE句とORDER BY、LIMITを組み合わせることで、テーブルから条件に合致する特定の行だけを効率的に取得できます。本記事では、実際にサンプルテーブルを作成し、特定の行を抽出するクエリの実行手順をわかりやすく解説します。
1. サンプルテーブルの作成
まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。ここでは「Section(組)」と「StudentName(生徒名)」という2つのカラムを持つテーブルを用意しました。
mysql> create table DemoTable1972
(
Section char(1),
StudentName varchar(20)
);
Query OK, 0 rows affected (0.00 sec)
2. テストデータの挿入
次に、INSERT文を使ってテーブルにレコードを登録します。
mysql> insert into DemoTable1972 values('D','Chris');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1972 values('B','David');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1972 values('A','Mike');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1972 values('C','Carol');
Query OK, 1 row affected (0.00 sec)
3. 全レコードの確認
SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。
mysql> select * from DemoTable1972;
実行結果は以下の通りです。
+---------+-------------+ | Section | StudentName | +---------+-------------+ | D | Chris | | B | David | | A | Mike | | C | Carol | +---------+-------------+ 4 rows in set (0.00 sec)
4. 特定の行を抽出するクエリ
ここからが本題です。WHERE句で条件を指定し、ORDER BYで並べ替え、LIMITで取得件数を制限することで、目的の行だけを取り出せます。
以下の例では、「Sectionが'C'より大きい行」をSection順に並べ替えたうえで、最大2件まで取得しています。
mysql> select * from DemoTable1972 where Section > 'C' order by Section limit 2;
実行結果は以下の通りです。
+---------+-------------+ | Section | StudentName | +---------+-------------+ | D | Chris | +---------+-------------+ 1 row in set (0.00 sec)
クエリのポイント解説
- WHERE Section > 'C':文字列の比較により、Sectionが「D」の行のみが条件に一致します。
- order by Section:結果をSectionカラムの昇順に並べ替えます。
- limit 2:取得する最大行数を2件に制限します。今回は該当行が1件のみのため、1行だけ表示されています。
このように、WHERE・ORDER BY・LIMITを組み合わせれば、大量のデータの中から必要な行だけを柔軟かつ高速に取得できます。ページネーション処理やランキング表示など、実務でも頻繁に使われるテクニックなので、ぜひマスターしておきましょう。
-
MySQLのSELECT文で特定のカラム(列)のレコードを取得する方法
はじめにMySQLでSELECTクエリを実行する際、SELECT *を使うとすべてのカラムが取得されますが、カラム名を明示的に指定すれば、必要なカラム(列)のデータだけを効率的に取り出せます。この記事では、サンプルテーブルを作成しながら、特定のカラムのレコードを取得する手順を解説します。1. テーブルの作成まず、CREATE TABLE文でサンプル用のテーブルを作成しましょう。mysql> create table DemoTable1837 ( StudentId int NOT NULL AU
-
MySQLで特定の行から単一の値だけを取得する方法(SELECT INTOの使い方)
MySQLで特定の条件に一致する行から、単一の値だけを変数に取得したい場合は、SELECT ... INTO 変数構文とWHERE句を組み合わせて使用します。この記事では、実際のテーブル作成から値の取得までの手順を順番に解説します。 1. サンプルテーブルを作成する まずは動作確認用のテーブルを作成しましょう。学生ID・氏名・点数を持つシンプルなテーブルを定義します。 mysql> create table DemoTable1896 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName