如何在SQL函数中将Query结果放入返回变量中

时间:2017-04-13 20:32:55

标签: mysql sql stored-functions

如何将查询结果放入SQL函数中的返回变量中。我还包含了一些错误消息,并且显示错误。我是SQL函数的新手,如果有人可以,那就太好了对此进行解释

DELIMITER //
CREATE FUNCTION fHW2_4_nuneedua( a varchar(50))
RETURNS varchar(50)
BEGIN
DECLARE result varchar(50) DEFAULT null;
select if ( a = NULL,
            RAISERROR('please input a valid city name', 16, 1),
            if( (select * from dreamhome.guest where city = a ) = 'NULL',
                  RAISERROR('Empty set', 16, 1),
                 (select GROUP_CONCAT(name) as output from dreamhome.guest where address like "% ' . $a . '%" )
              )
            ) INTO result
RETURN result;
END //
DELIMITE

我在这个功能的第12行遇到错误。

1 个答案:

答案 0 :(得分:0)

我可以推荐的最简单的语法更改(作为一个函数)包括:

CREATE FUNCTION fHW2_4_nuneedua(@a Varchar(50))
RETURNS Varchar(50)
AS
BEGIN
    IF @a IS NULL RETURN NULL
    IF NOT EXISTS (SELECT * FROM dreamhome.guest WHERE city = @a) RETURN NULL
    RETURN (SELECT GROUP_CONCAT(name) as output 
    FROM dreamhome.guest WHERE address LIKE "% ' . $" + @a + " . '%")
END

这假设“dreamhome”是一个架构而“guest”是一个表......