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

MySQLのSELECT IFステートメントでOR条件を使う方法

MySQLでは、SELECT文の中でIF()関数とOR演算子を組み合わせて使用できます。この記事では、実際にテーブルを作成しながら、OR条件を含むSELECT IFステートメントの使い方を解説します。

サンプルテーブルの作成

まず、従業員情報を格納するテーブルを作成します。以下がテーブル作成用のクエリです。

mysql> create table EmployeeInformation
    -> (
    -> EmployeeId int,
    -> EmployeeName varchar(100),
    -> EmployeeStatus varchar(100)
    -> );
Query OK, 0 rows affected (0.68 sec)

データの挿入

次に、INSERTコマンドを使ってテーブルにレコードを挿入します。

mysql> insert into EmployeeInformation values(1,'Sam','FullTime');
Query OK, 1 row affected (0.23 sec)

mysql> insert into EmployeeInformation values(2,'Mike','PartTime');
Query OK, 1 row affected (0.14 sec)

mysql> insert into EmployeeInformation values(3,'Bob','Intern');
Query OK, 1 row affected (0.14 sec)

mysql> insert into EmployeeInformation values(4,'Carol','FullTime');
Query OK, 1 row affected (0.16 sec)

mysql> insert into EmployeeInformation values(5,'John','FullTime');
Query OK, 1 row affected (0.19 sec)

mysql> insert into EmployeeInformation values(6,'Johnson','PartTime');
Query OK, 1 row affected (0.19 sec)

mysql> insert into EmployeeInformation values(7,'Maria','Intern');
Query OK, 1 row affected (0.12 sec)

登録データの確認

SELECTコマンドでテーブル内の全レコードを表示して、正しくデータが登録されているか確認しましょう。

mysql> select *from EmployeeInformation;

出力結果

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeStatus |
+------------+--------------+----------------+
|          1 | Sam          | FullTime       |
|          2 | Mike         | PartTime       |
|          3 | Bob          | Intern         |
|          4 | Carol        | FullTime       |
|          5 | John         | FullTime       |
|          6 | Johnson      | PartTime       |
|          7 | Maria        | Intern         |
+------------+--------------+----------------+
7 rows in set (0.00 sec)

OR条件を使ったSELECT IFステートメントの実行

それでは、OR条件を組み合わせたSELECT IFステートメントを実行してみましょう。以下のクエリでは、EmployeeStatusが「FullTime」または「Intern」である従業員についてはEmployeeName(従業員名)を返し、それ以外の場合は従業員のステータス(雇用形態)をそのまま返します。

mysql> select if(EmployeeStatus='FullTime' or
EmployeeStatus='Intern',EmployeeName,EmployeeStatus) as Status from
EmployeeInformation;

出力結果

+----------+
| Status   |
+----------+
| Sam      |
| PartTime |
| Bob      |
| Carol    |
| John     |
| PartTime |
| Maria    |
+----------+
7 rows in set (0.00 sec)

解説

出力結果を見ると、「FullTime」または「Intern」に該当するSam、Bob、Carol、John、Mariaについては従業員名が表示され、該当しないMikeとJohnsonについては「PartTime」というステータスが表示されていることがわかります。

IF(条件, 真の場合の値, 偽の場合の値)という構文に対し、条件部分でorを使うことで、複数の値のいずれかに一致するかどうかを判定できます。これにより、特定のステータスを持つレコードだけ別の列の値を表示するといった柔軟なデータ取得が可能になります。

  1. JavaでMySQLのSELECTクエリにPreparedStatement(プリペアドステートメント)を使う方法

    executeQuery()メソッドの基本的な使い方JavaからMySQLに対してSELECTクエリを実行する場合は、PreparedStatementオブジェクトのexecuteQuery()メソッドを使用します。基本構文は以下の通りです。yourPreparedStatementObject = yourConnectionObject.prepareStatement(yourQueryName);yourResultSetObject = yourPreparedStatementObject.executeQuery();それでは、実際にサンプルデータベース「sample」を使って手

  2. MySQLでSELECTクエリを使用してデータを挿入(INSERT)する方法

    MySQLでは、INSERT文とSELECTクエリを組み合わせることで、テーブルにデータを挿入することができます。通常、SELECTは既存のテーブルからデータを取得するために使われますが、値を直接指定してINSERTを実行する際にも活用できる便利な手法です。基本構文SELECTクエリを使用してINSERTを実行する場合の構文は以下の通りです。insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;