0

我为什么会/* SQL Error (1241): Operand should contain 1 column(s) */来到这里。

这是我的函数创建

CREATE DEFINER=`root`@`localhost` FUNCTION `newLink`(`encAction` VARCHAR(27))
    RETURNS varchar(512)
    LANGUAGE SQL
    DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN

RETURN ('{"actVal":"',encAction,'"}');//I'm going wrong somewhere here.

END

我是这样称呼它的

select newLink(1);

我实际上正在通过encAction,但似乎失败了。同样的事情在SQL语句中有效,但在函数内部失败。你明白为什么以及如何做到这一点吗?

4

1 回答 1

1

您的字符串值需要连接。而不是这个:

RETURN ('{"actVal":"',encAction,'"}');

试试这个:

RETURN CONCAT('{"actVal": "', encAction, '"}');

这假设您正在尝试返回 JSON 式的值,例如{"actVal": "foo"}.

于 2013-06-20T14:23:40.477 回答