mysql - 如何将查询结果放入 SQL 函数的返回变量中

标签 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 行遇到错误。

最佳答案

我建议您进行的最简单的语法更改(作为函数)包括:

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/

相关文章:

mysql - 合并日期和人员状态列之间的 2 结果(Sql 查询)

java - 语法错误>>检查与您的 MariaDB 服务器版本相对应的手册,以获取在第 1 行 '?' 附近使用的正确语法

mysql - EXCEL VBA 为多个变量赋值

database - PostgreSQL 从存储函数访问多个数据库

Mysql错误: Not allowed to return a result set from a function

sql - 哪个 RDBMS 或其他工具提供了良好的 SQL 语法错误消息?

mysql - 代码 Igniter JOIN 中的问题

php - 更新 MySQL 和日期时间本地字段

sql - 查询值为空的单行的列名?

sql - postgresql 的更新类型