我在函数内部使用查询来获取数据库中的值,但它返回NULL。 函数外的相同查询工作正常。
我的职能
BEGIN
RETURN (SELECT `value` FROM data WHERE `k` = 29 AND `entity` = "abr9f9" LIMIT 1);
END
使用函数和相同的原始查询进行测试
SELECT
GETSTATIC() AS static,
(SELECT `value` FROM data WHERE `k` = 29 AND `entity` = "abr9f9" LIMIT 1) AS raw
正在返回
static raw
------ ---
NULL 175
我认为这是因为我没有在函数中选择返回字段VALUE。
我该怎么做?
答案 0 :(得分:2)
BEGIN和END之间的第一个代码示例不会返回您的预期结果,因为此表示法用于定义过程,而第二个示例是纯SQL DML。
如果需要,您可以阅读CREATE PROCEDURE语法,特别是OUT参数。
修改强>
试试这个:
create function GETSTATIC()
returns integer
return (SELECT `value` FROM data WHERE `k` = 29 AND `entity` = "abr9f9" LIMIT 1);
然后你会称之为:
select GETSTATIC() as static;