所以这是密码
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
,除以零得到一个空值。
我想你在找
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/