如何将查询结果放入 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 行遇到错误。
最佳答案
我建议您进行的最简单的语法更改(作为函数)包括:
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”是一个表...
关于mysql - 如何将查询结果放入 SQL 函数的返回变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43401218/