这就是代码
CREATE FUNCTION smc() RETURNS FLOAT
DETERMINISTIC
BEGIN
DECLARE w1 FLOAT;
DECLARE w2 FLOAT;
DECLARE qd FLOAT;
DECLARE hasil FLOAT;
SET w1 = "SELECT TRUNCATE(SQRT(SUM((w1*w1))),2) FROM tb_term";
SET w2 = "SELECT TRUNCATE(SQRT(SUM((w2*w2))),2) FROM tb_term";
SET qd = "SELECT TRUNCATE(SUM(w1*w2),2) FROM tb_term";
SET hasil = (qd/(w1*w2));
RETURN hasil; END;
它保持返回空值。当我返回 w1、w2 或 qd 时,它返回 0 值。怎么了 ? 谢谢之前。
最佳答案
您将 w1
、w2
和 qd
变量声明为 FLOAT,但为它们分配了字符串;结果是您在这三个方面都得到 0.0。然后将 0.0/0.0
分配给 hasil
并除以零得到 NULL。
我认为您正在寻找
SELECT TRUNCATE(SQRT(SUM((w1*w1))),2) into w1 FROM tb_term;
SELECT TRUNCATE(SQRT(SUM((w2*w2))),2) into w2 FROM tb_term;
SELECT TRUNCATE(SUM(w1*w2),2) into qd FROM tb_term;
关于mysql - 为什么这个mysql函数总是返回零值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9902377/