MySQLのIFステートメントで文字列を返す方法をわかりやすく解説
MySQLでは、IF()関数を使用することで、条件の評価結果に応じて異なる文字列を返すことができます。本記事では、従業員の給与データを例に、IFステートメントの結果として文字列を返すクエリの書き方を、テーブル作成から順を追って解説します。
1. サンプルテーブルの作成
まず、デモ用のテーブルを作成しましょう。
mysql> create table DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeSalary int
);
Query OK, 0 rows affected (1.68 sec)このテーブルは、自動採番される「Id」と、従業員の給与を格納する「EmployeeSalary」の2つのカラムを持っています。
2. レコードの挿入
続いて、INSERTコマンドを使ってテーブルに複数のレコードを挿入します。
mysql> insert into DemoTable(EmployeeSalary) values(12000); Query OK, 1 row affected (0.24 sec) mysql> insert into DemoTable(EmployeeSalary) values(20000); Query OK, 1 row affected (0.55 sec) mysql> insert into DemoTable(EmployeeSalary) values(11500); Query OK, 1 row affected (0.94 sec) mysql> insert into DemoTable(EmployeeSalary) values(15500); Query OK, 1 row affected (0.44 sec)
3. テーブル内容の確認
SELECTステートメントを実行して、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行すると、以下のような結果が得られます。
+----+----------------+ | Id | EmployeeSalary | +----+----------------+ | 1 | 12000 | | 2 | 20000 | | 3 | 11500 | | 4 | 15500 | +----+----------------+ 4 rows in set (0.00 sec)
4. IFステートメントで文字列を返すクエリ
それでは本題です。IFステートメントの結果として文字列を返すには、以下のようにクエリを記述します。この例では、給与が12000以下の場合は「Internship Employee(インターン社員)」、それ以外の場合は「FullTime Employee(正社員)」という文字列を返しています。
mysql> select Id,if(EmployeeSalary <= 12000 ,'Internship Employee','FullTime Employee') as status from DemoTable;
実行結果は以下の通りです。
+----+---------------------+ | Id | status | +----+---------------------+ | 1 | Internship Employee | | 2 | FullTime Employee | | 3 | Internship Employee | | 4 | FullTime Employee | +----+---------------------+ 4 rows in set (0.00 sec)
まとめ
MySQLのIF()関数は「IF(条件式, 真の場合の値, 偽の場合の値)」という形式で記述し、条件分岐の結果をそのままSELECT文の出力として扱えます。AS句で別名(エイリアス)を付ければ、結果セットのカラム名も見やすくできます。数値データをカテゴリ名などの文字列に変換して表示したい場合に非常に便利な機能なので、ぜひ活用してみてください。
-
MySQLで区切り文字の後の部分文字列を取得する方法
```html MySQLで区切り文字の後にある部分文字列を取得するには、SUBSTRING()関数とINSTR()関数を組み合わせて使用します。まず、サンプル用のテーブルを作成しましょう。 mysql> create table DemoTable -> ( -> Title text -> ); Query OK, 0 rows affected (0.56 sec) 次に、INSERTコマンドを使ってテーブルにレコードを挿入します。 mysql> insert into DemoTable values(John is good in MySQL,Sam i
-
文字列に特定の単語が含まれているかどうかを確認するMySQLクエリの書き方
MySQLで文字列の中に特定の単語が含まれているかどうかを確認するには、LIKE演算子とCONCAT()関数を組み合わせて使用します。ここでは、実際のサンプルコードとともにその方法を解説します。1. テーブルの作成まず、検証用のテーブルを作成しましょう。mysql> create table DemoTable ( Value text ); Query OK, 0 rows affected (0.63 sec)2. レコードの挿入INSERTコマンドを使って、テーブルにいくつかのレコードを追加します。mysql> insert into DemoTable values