如何分解存储函数输出phpmyadmin

sulc1iza  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(310)

我在phpmyadmin中创建了一个存储函数,它跨多个字段进行计算,从而得出一个总体值。我使用的是一个函数,因为计算需要在多个脚本中多次使用,所以据我所知,这是最有效的方法来减少代码更新。
我已经测试了这个函数,它的工作原理是提供一个输出,但是当我将它与我的查询相结合时,它会在查询结果中提供一个聚合的数字,而不是每行提供一个特定的数字:
功能代码:

BEGIN   

DECLARE Output_needed INT(7);   

SET Output_needed = (select SUM(Col1+Col2+Col3) from table1);   

RETURN (Output_needed); 
END

sql查询:

Select ID, function_name(), Col1, Col2, Col3 from table1

必需的查询输出

ID  Function Returns    *Output_needed* Col1    Col2    Col3
1   100                 *10*             4      4       2
2   100                 *50*             10     20      20
3   100                 *5*              1      2       2
4   100                 *15*             10     2       3
5   100                 *20*              6     3       1

有人能告诉我哪里出错了吗?我想我在某个地方漏了一步,但似乎想不出来。
谢谢!

e3bfsja2

e3bfsja21#

函数select query不具备获取单行结果的条件。因此,我刚刚添加了一个字段以供有条件使用。
功能:

DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `function_name`(pk_field INT) RETURNS int(11)
BEGIN
    DECLARE output_needed INT;
    SELECT SUM(Col1+Col2+Col3) INTO output_needed FROM table1 WHERE pk_field_name = pk_field;
    RETURN output_needed;
END$$
DELIMITER ;

选择查询:

Select ID, function_name(pk_field_name), Col1, Col2, Col3 from table1

相关问题