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

MySQLのIF文で複数の条件を扱う方法(AND・OR演算子の使い方)

MySQLのIF文で複数条件を扱うには?

MySQLのストアドプロシージャ内では、IF文にAND演算子OR演算子を組み合わせることで、複数の条件を一度に判定することができます。ここでは、その基本構文と実際の使用例をわかりやすく解説します。

基本構文

DECLARE X int;
DECLARE Y int;
SET X = value1;
SET Y = value2;
IF ( (X < Y AND X > value1 AND Y > value2) OR X != anyValueToCompare) THEN
    yourStatement;
ELSE
    yourStatement;
END IF;

この構文では、AND演算子で結ばれた複数の条件がすべて成立する場合、もしくはOR演算子による別の条件が成立した場合に、THEN以降の処理が実行されます。どちらの条件も満たさない場合はELSEブロックの処理が実行されます。

ストアドプロシージャの作成例

それでは、実際にストアドプロシージャを作成して動きを確認してみましょう。以下のクエリでプロシージャを作成します。

mysql> DELIMITER //
mysql> create procedure SP_IFELSEDEMO()
    -> BEGIN
    -> DECLARE X int;
    -> DECLARE Y int;
    -> SET X=100;
    -> SET Y=400;
    -> IF ( (X < Y AND X > 99 AND Y > 300) OR X != 10 ) THEN
    ->     SELECT 'Logic is Correct';
    -> ELSE
    ->     SELECT 'Logic is not Correct';
    -> END IF;
    -> END;
    -> //
Query OK, 0 rows affected (0.27 sec)
mysql> DELIMITER ;

この例では、変数Xに100、Yに400を設定し、「X < Y かつ X > 99 かつ Y > 300」という複数条件がすべて真であるか、あるいは「X ≠ 10」であるかを判定しています。

ストアドプロシージャの呼び出し方

作成したストアドプロシージャは、CALLコマンドを使用して呼び出します。

mysql> call SP_IFELSEDEMO();

実行結果

+------------------+
| Logic is Correct |
+------------------+
| Logic is Correct |
+------------------+
1 row in set (0.04 sec)
Query OK, 0 rows affected (0.07 sec)

X=100、Y=400の場合、「X < Y(100 < 400)」「X > 99」「Y > 300」のすべての条件が満たされているため、THEN側の処理が実行され「Logic is Correct」が出力されました。このように、ANDやOR演算子を活用することで、IF文でも柔軟に複雑な条件分岐を実装できます。

  1. MySQLのTINYINT型カラムに対してUPDATEステートメントを使用する方法

    MySQLでは、TINYINT型のカラムは真偽値(true/false)を扱う際によく利用されます。この記事では、TINYINT型のカラムを持つテーブルに対して、UPDATEステートメントで値を更新する手順を具体的に解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成します。ここでは、isMarried カラムを TINYINT 型として定義しています。mysql> create table DemoTable -> ( -> EmployeeId int, -> isMarried tinyint -> );Query O

  2. MySQLのUPDATE文でIF()関数を使い、条件に応じてカラムの値を設定する方法

    MySQLでは、UPDATE文の中でIF()関数を組み合わせることで、条件に応じた値を柔軟に設定できます。本記事では、学生の点数データを例に、点数が60点より大きいかどうかを判定し、「PASS」または「FAIL」を自動的にStatusカラムへ設定する方法を解説します。IF()関数の基本構文IF()関数は以下のような形式で使用します。IF(条件, 条件が真の場合の値, 条件が偽の場合の値)この関数をUPDATE文のSET句に記述することで、行ごとに異なる値を一括して更新できます。サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable