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

MySQLでテーブルから特定の行を抽出するクエリの書き方

MySQLでは、WHERE句とORDER BYLIMITを組み合わせることで、テーブルから条件に合致する特定の行だけを効率的に取得できます。本記事では、実際にサンプルテーブルを作成し、特定の行を抽出するクエリの実行手順をわかりやすく解説します。

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行だけ表示されています。

このように、WHEREORDER BYLIMITを組み合わせれば、大量のデータの中から必要な行だけを柔軟かつ高速に取得できます。ページネーション処理やランキング表示など、実務でも頻繁に使われるテクニックなので、ぜひマスターしておきましょう。

  1. MySQLのSELECT文で特定のカラム(列)のレコードを取得する方法

    はじめにMySQLでSELECTクエリを実行する際、SELECT *を使うとすべてのカラムが取得されますが、カラム名を明示的に指定すれば、必要なカラム(列)のデータだけを効率的に取り出せます。この記事では、サンプルテーブルを作成しながら、特定のカラムのレコードを取得する手順を解説します。1. テーブルの作成まず、CREATE TABLE文でサンプル用のテーブルを作成しましょう。mysql> create table DemoTable1837    (    StudentId int NOT NULL AU

  2. MySQLで特定の行から単一の値だけを取得する方法(SELECT INTOの使い方)

    MySQLで特定の条件に一致する行から、単一の値だけを変数に取得したい場合は、SELECT ... INTO 変数構文とWHERE句を組み合わせて使用します。この記事では、実際のテーブル作成から値の取得までの手順を順番に解説します。 1. サンプルテーブルを作成する まずは動作確認用のテーブルを作成しましょう。学生ID・氏名・点数を持つシンプルなテーブルを定義します。 mysql> create table DemoTable1896 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName