次のような計算を繰り返すストアドプロシージャがあります
DROP PROCEDURE sp_alters;
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
PROCEDURE `sp_alters`()
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/
BEGIN
SELECT
`fn_getDiscount`(`t_orderitem`.`a_orderitemid`,`t_orderitem`.`a_quantity`) AS `discount`,
fn_getnewvalues(`fn_getDiscount`(`t_orderitem`.`a_orderitemid`,`t_orderitem`.`a_quantity`),a_orderitemid) as newvalue
FROM t_orderitem;
END$$
DELIMITER ;
ここで、同じストアド プロシージャ内で fn_getDiscount を 2 回呼び出していることがわかります。だから避けたい。変数に格納して使用できますか?