MySQLストアドプロシージャを利用したIF文の書き方について
こんにちは、エンジニアのR.Nです。
今回のテクヤンは、MySQLストアドプロシージャを利用したIF文の書き方についてご紹介致します。
ある引数から条件分岐を行い、MySQL側で結果を操作することが可能です。
【条件】 ・flg = 0 の場合、tableAよりidを条件とし抽出し結果のテーブル構造を返却する ・flg = 1 の場合、tableBよりidを条件とし抽出し結果のテーブル構造を返却する 【入力】 ・IDとフラグ 【出力】 ・テーブル構造を返却
上記条件の場合、サンプルコードを以下に記載致します。
1.IF文を使用したストアドプロシージャ
【サンプル】
-- -----------------------------------
-- CREATE PROCEDURE SelectFunction
-- -----------------------------------
CREATE PROCEDURE SelectFunction(IN id INT, IN flg INT)
BEGIN
IF flg = 0 THEN
SELECT *
FROM tableA
WHERE tableA.ID = id
;
ELSE
SELECT *
FROM tableB
WHERE tableB.ID = id
;
END IF
;
END
※ある特定のIDから、別テーブルを操作し、
その結果をそれぞれ返却したい場合にとても便利です。