MySQL IF-ELSE ステートメントをストアドプロシージャで使用する方法は?
MySQLでは、IF ELSE文を利用してストアドプロシージャ内に条件分岐や論理制御を実装できます。例:
DELIMITER $$
CREATE PROCEDURE exampleProcedure()
BEGIN
DECLARE statement VARCHAR(50);
DECLARE flag INT;
SET flag = 1;
IF flag = 1 THEN
SET statement = 'Flag is 1';
ELSE
SET statement = 'Flag is not 1';
END IF;
SELECT statement;
END $$
DELIMITER ;
上記の例では、exampleProcedureというストアプロシージャを作成しています。この中で、変数statementを文字列型、変数flagを整数型で宣言し、変数flagには1を代入しています。
以降、IF ELSE文を使ってflagの値を判定する。flagが1だったら、statementの値は’Flag is 1′に設定、そうでなければ’Flag is not 1′に設定する。
最後に SELECT ステートメントを用いて statement の値を出力する。
このストアドプロシージャを実行するには、次のステートメントを使用します。
CALL exampleProcedure();
実行すると、結果は「Flag is 1」と表示されます。
なお、IF ELSE文はストアドプロシージャにおける一例ですので、必要に応じてより複雑な制御ロジックを実現するためにIF ELSE文をご利用いただけます。