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文をご利用いただけます。

bannerAds