如果在mysql函数中,简单查询不起作用
我在函数中使用查询来获取数据库中的值,但它返回NULL。 函数外部的相同查询工作正常 我的功能如果在mysql函数中,简单查询不起作用,mysql,sql,Mysql,Sql,我在函数中使用查询来获取数据库中的值,但它返回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 `ent
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
我认为这是因为我没有在函数中选择返回字段值。
我如何才能做到这一点?在开始和结束之间的第一个代码示例不会返回预期结果,因为此符号用于定义过程,而第二个示例是纯SQL DML 如果需要,可以阅读语法,特别是OUT参数 编辑: 试试这个:
create function GETSTATIC()
returns integer
return (SELECT `value` FROM data WHERE `k` = 29 AND `entity` = "abr9f9" LIMIT 1);
那么你可以这样称呼它:
select GETSTATIC() as static;
我需要这个函数,因为我必须在其他查询中运行。现在有办法使用函数按预期返回值吗?有,请阅读我的链接文章,有一个关于创建函数的示例,例如返回CHAR(50)一个兼容但更完整的定义应该包括
DETERMINISTIC
在返回INT
之后读取SQL数据。如果OP阅读了我链接的文章,他们也会知道这一点。