mysql - 为什么这个mysql函数总是返回零值?

标签 mysql function

这就是代码

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 并除以零得到 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/

相关文章:

c++ - 我们如何确保传递的 2 个参数被视为第一个和第三个,而第二个和第四个被视为默认值

Python函数直接改变列表,而不返回它

php - 在 PHP 中从数组构建单个多重插入查询

MySQL:SELECT 只获取基于 "WHERE x LIKE ' % 的记录?多对多关系中的 %'"

php - 更新查询在 Mysql 中不起作用,而是在此查询中插入新数据

javascript - 如何将变量从 Controller 传递到 View 中的ajax请求,然后在php脚本(codeigniter)中检索它

javascript - 单选按钮在javascript函数中产生未定义的值

函数调用变量输出数

PHP JSON 不显示 MySQL 结果

mysql - 使用 Like 和 Not Like 从 2 个表中选择