gpt4 book ai didi

php - SUM 函数在 MYSQL 存储过程中不起作用?

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:35 26 4
gpt4 key购买 nike

无论何时运行存储过程,它都会返回相同的输出 106。它是 number1 列所有数据的总和。在我的示例代码下方。我希望它能帮助你。如有错误请指正。

存储过程:

DELIMITER $$
CREATE PROCEDURE raw_data(IN user_id INT(10),IN p_id INT(10))
BEGIN
SELECT SUM(number1) AS result FROM raw_data WHERE user_id=user_id AND p_id=p_id;
END $$
DELIMITER ;

表格格式:

       id name    number1     number2       user_id    p_id
1 a 10 20 1 49
2 b 12 12 1 49
3 c 20 30 2 48
4 d 22 22 2 48
5 c 20 30 2 48
6 d 22 22 2 49

输入:

CALL raw_data(1, 49);   

输出:

result
106

注意:如果给出任何输入,输出 (106) 是相同的。抱歉我的英语不好。

最佳答案

您的参数与列名混淆了。总是在它们前面加上一些东西来区分它们:

DELIMITER $$
CREATE PROCEDURE raw_data(IN in_user_id INT(10), IN in_p_id INT(10))
BEGIN
SELECT SUM(rd.number1) AS result
FROM raw_data rd
WHERE rd.user_id = in_user_id AND rd.p_id = in_p_id;
END $$

DELIMITER ;

在您的 where 语句中,表中的列 (user_id) 与表中的列 (user_id) 进行比较。最好的解决方案是命名存储过程的参数,这样它们就不会与表中的列匹配。

关于php - SUM 函数在 MYSQL 存储过程中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32269961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com