我有一个存储过程,我在其中重复计算,例如
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 次。所以我想避免它。我可以存储到变量中并使用它吗?