0
接受空我有调用存储函数以下查询:MySQL的:存储功能不能从视场
select count(*)
from vw_estatus_empleados vw
where nivel_color_id('Cumplimiento', vw.estatus_actual) = -1;
的nivel_color_id
函数返回-1
当第二个参数是空值。
其实,vw.estatus_actual
字段有null
在所有行。
当运行结果上方的查询是:
+----------+
| count(*) |
+----------+
| 0 |
+----------+
通过另一方面,当我运行的null
代替vw.estatus_actual
相同的查询:
select count(*)
from vw_estatus_empleados vw
where nivel_color_id('Cumplimiento', null) = -1;
结果是:
+----------+
| count(*) |
+----------+
| 19 |
+----------+
以下是函数标题:
CREATE DEFINER=...
FUNCTION `nivel_color_id`(`escala` VARCHAR(16), `valor` FLOAT)
RETURNS int(11)
为什么这可能发生?
编辑:
视图行示例:
SELECT * FROM vw_estatus_empleados
WHERE estatus_actual IS NULL;
+-------------+--------------+----------------+
| id_empleado | id_proveedor | estatus_actual |
+-------------+--------------+----------------+
| 11 | 16 | NULL |
| 8 | 11 | NULL |
| 4 | 2 | NULL |
| 19 | 23 | NULL |
| 13 | 18 | NULL |
+-------------+--------------+----------------+
请检查编辑 – nashuald