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を使うことで、複数の値のいずれかに一致するかどうかを判定できます。これにより、特定のステータスを持つレコードだけ別の列の値を表示するといった柔軟なデータ取得が可能になります。
-
JavaでMySQLのSELECTクエリにPreparedStatement(プリペアドステートメント)を使う方法
executeQuery()メソッドの基本的な使い方JavaからMySQLに対してSELECTクエリを実行する場合は、PreparedStatementオブジェクトのexecuteQuery()メソッドを使用します。基本構文は以下の通りです。yourPreparedStatementObject = yourConnectionObject.prepareStatement(yourQueryName);yourResultSetObject = yourPreparedStatementObject.executeQuery();それでは、実際にサンプルデータベース「sample」を使って手
-
MySQLでSELECTクエリを使用してデータを挿入(INSERT)する方法
MySQLでは、INSERT文とSELECTクエリを組み合わせることで、テーブルにデータを挿入することができます。通常、SELECTは既存のテーブルからデータを取得するために使われますが、値を直接指定してINSERTを実行する際にも活用できる便利な手法です。基本構文SELECTクエリを使用してINSERTを実行する場合の構文は以下の通りです。insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;