所以这是密码

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值。怎么了?
谢谢你。

最佳答案

您将您的w1w2qd变量声明为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/

10-11 23:30