I have the following function:
CREATE FUNCTION test_rule (value TEXT, greater_than DECIMAL(10,4))
RETURNS BOOL
RETURN greater_than IS NULL OR CAST(value AS DECIMAL(10,4)) > greater_than;
如果我使用一个空字符串作为value
参数调用此函数,我会收到一个错误:
SELECT test_rule('',10)
(1366):行-1的列“”的值无效。
但是不使用函数时,相同的表达式可以正常工作。
SELECT '' IS NULL OR CAST('' AS DECIMAL(10,4)) > 10
0
这是为什么呢?
我正在使用 MySQL 5.6.22 版本。