MySQLのIF句を使って学生の合否(PASS/FAIL)を新しい列に表示する方法
MySQLでは、IF()関数を活用することで、条件に応じた値を新しい列として表示できます。本記事では、学生のスコアに基づいて「PASS(合格)」または「FAIL(不合格)」を判定し、その結果を新しい列に表示する方法を、実際のコード例とともにわかりやすく解説します。
1. テーブルの作成
まず、サンプル用のテーブルを作成しましょう。
mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(100),
-> Subject varchar(100),
-> Score int
-> );
Query OK, 0 rows affected (0.94 sec)
このテーブルは、学生ID(Id)、名前(Name)、科目(Subject)、スコア(Score)を格納する構造になっています。
2. レコードの挿入
次に、INSERTコマンドを使用してテーブルにデータを追加します。
mysql> insert into DemoTable(Name,Subject,Score) values('Chris','MySQL',80);
Query OK, 1 row affected (0.32 sec)
mysql> insert into DemoTable(Name,Subject,Score) values('Robert','MongoDB',45);
Query OK, 1 row affected (0.62 sec)
mysql> insert into DemoTable(Name,Subject,Score) values('Adam','Java',78);
Query OK, 1 row affected (0.52 sec)3. テーブルの内容を確認
SELECT文を使って、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
出力
上記のクエリを実行すると、次のような結果が得られます。
+----+--------+---------+-------+
| Id | Name | Subject | Score |
+----+--------+---------+-------+
| 1 | Chris | MySQL | 80 |
| 2 | Robert | MongoDB | 45 |
| 3 | Adam | Java | 78 |
+----+--------+---------+-------+
3 rows in set (0.00 sec)
4. IF句で合否を判定する
ここからが本題です。MySQLのIF()関数は、「IF(条件式, 真の場合の値, 偽の場合の値)」という構文で記述でき、SELECT文の中で動的に判定結果を生成できます。
以下のクエリでは、スコアが75より大きい場合に「PASS」、それ以外の場合に「FAIL」を返し、その結果をAS句で「Status」という別名の新しい列として表示しています。
mysql> select Name,Subject,Score,if(Score > 75,"PASS","FAIL") AS Status from DemoTable;
出力
実行結果は以下の通りです。
+--------+---------+-------+--------+
| Name | Subject | Score | Status |
+--------+---------+-------+--------+
| Chris | MySQL | 80 | PASS |
| Robert | MongoDB | 45 | FAIL |
| Adam | Java | 78 | PASS |
+--------+---------+-------+--------+
3 rows in set (0.00 sec)
まとめ
IF()関数を使えば、SQLクエリ内で条件分岐を行い、判定結果をそのまま新しい列として出力できます。AS句で別名を付けることで、読みやすい列名で結果を表示できるのもポイントです。この手法は、合否判定だけでなく、在庫の有無や処理ステータスの表示など、さまざまな場面で応用できる便利なテクニックなので、ぜひ覚えておきましょう。
-
MySQLビュー(VIEW)にWHERE句を使う方法をわかりやすく解説
MySQLビューでWHERE句を使用する方法MySQLでは、作成済みのビュー(VIEW)に対して、通常のテーブルと同じようにWHERE句を指定してデータを絞り込むことができます。基本となる構文は以下の通りです。select * from yourViewName where yourColumnName=yourValue;それでは、実際にサンプルを使って手順を確認していきましょう。1. サンプルテーブルを作成するまず、学生情報を格納するテーブルを作成します。mysql> create table DemoTable1432 -> ( -> StudentId
-
MySQLでテーブル内の各レコードの出現回数をカウントし、結果を新しい列として表示する方法
MySQLのテーブル内で同じ値が何回出現するかをカウントし、その結果を新しい列として表示したい場合があります。このような集計処理には、COUNT(*)関数とGROUP BY句を組み合わせて使用します。 サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable1942 ( Value int ); Query OK, 0 rows affected (0.00 sec) INSERTコマンドを使って、いくつかのレコードを挿入します。 mysql> insert into DemoTable