MySQLで学生の点数に基づいてカスタムメッセージを表示する方法
MySQLでは、CASE文を使うことで、点数などの数値データに応じてカスタムメッセージを動的に表示できます。この記事では、学生の点数が40点より大きいかどうかを判定し、「Good Marks」または「Not Good Marks」というメッセージを出力する具体的な手順を解説します。
1. サンプルテーブルを作成する
まず、点数を格納するためのテーブルを作成しましょう。
mysql> create table DemoTable1952
(
Marks int
);
Query OK, 0 rows affected (0.00 sec)
2. テストデータを挿入する
次に、INSERTコマンドを使ってサンプルレコードを登録します。
mysql> insert into DemoTable1952 values(35); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1952 values(65); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1952 values(55); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1952 values(39); Query OK, 1 row affected (0.00 sec)
3. 登録したデータを確認する
SELECT文ですべてのレコードを表示して、データが正しく登録されているか確認します。
mysql> select * from DemoTable1952;
実行すると、以下のような出力が得られます。
+-------+ | Marks | +-------+ | 35 | | 65 | | 55 | | 39 | +-------+ 4 rows in set (0.00 sec)
4. CASE文でカスタムメッセージを表示する
ここが本題です。CASE文を使うことで、点数が40より大きい場合には「Good Marks」、それ以外の場合には「Not Good Marks」を返すクエリを作成できます。
mysql> select
case when Marks > 40 then 'Good Marks' else 'Not Good Marks' end as Result
from DemoTable1952;
このクエリを実行すると、以下のような結果が出力されます。
+----------------+ | Result | +----------------+ | Not Good Marks | | Good Marks | | Good Marks | | Not Good Marks | +----------------+ 4 rows in set (0.00 sec)
まとめ
CASE文は、SELECT句の中で条件分岐を行える非常に便利な構文です。case when 条件 then 値 else 値 end の形式で記述し、AS句で別名を付けることで見やすい結果を取得できます。点数の評価だけでなく、在庫状況やステータスの表示など、さまざまな場面で活用できるので、ぜひ覚えておきましょう。
-
MySQLでENUM型の値にカスタムメッセージを表示する方法
MySQLでENUM型の値にカスタムメッセージを表示する方法MySQLでは、IF関数による条件分岐を使うことで、ENUM型の値に応じたカスタムメッセージを簡単に表示できます。ここでは、実際のサンプルを使いながら、テーブル作成からメッセージ表示までの手順を順番に解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成しましょう。isActive列には「Y」「N」の2つの値を持つENUM型を定義しています。mysql> create table DemoTable1992 ( ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY
-
【MySQL】ユーザー定義変数とIF関数・SELECT文を組み合わせてカスタムメッセージを表示する方法
MySQLでは、ユーザー定義変数(@変数)とIF()関数、SELECT文を組み合わせることで、クエリの結果に応じたカスタムメッセージを簡単に表示できます。本記事では、サンプルテーブルを作成し、合計値の正負に応じて異なるメッセージを返す方法を順を追って解説します。1. サンプルテーブルの作成まず、テーブルを作成しましょう。mysql> create table DemoTable2008 ( Value int ); Query OK, 0 rows affected (10.59 sec)2. レコードの挿入次に、INSERTコマンドを使用してテーブルにレコードを挿入します。my