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から、別テーブルを操作し、
 その結果をそれぞれ返却したい場合にとても便利です。