Mysql SQL循环获取空值

Mysql SQL循环获取空值,mysql,sql,loops,select,cursor,Mysql,Sql,Loops,Select,Cursor,在代码的下一部分中,我使用光标和循环生成与搜索查询匹配的用户列表, 但是我得到了一个null值,为什么 BEGIN DECLARE finished INTEGER DEFAULT 0; DECLARE ids TEXT; DECLARE response TEXT; DECLARE ids_cursor CURSOR FOR SELECT id FROM user WHERE email LIKE CONCAT('%',valu

在代码的下一部分中,我使用光标和循环生成与搜索查询匹配的用户列表, 但是我得到了一个
null
值,为什么

BEGIN
    DECLARE finished INTEGER DEFAULT 0;
    DECLARE ids TEXT;
    DECLARE response TEXT;
    DECLARE ids_cursor CURSOR FOR
        SELECT id 
        FROM user WHERE email LIKE CONCAT('%',value,'%') 
        OR lastname LIKE CONCAT('%',value,'%') 
        OR name LIKE CONCAT('%',value,'%');
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 2;

    OPEN ids_cursor;
    get_ids: LOOP

        FETCH ids_cursor INTO ids;

        IF finished = 2 THEN
            LEAVE get_ids;
        END IF;

        SET response = CONCAT(ids,";",response);

    END LOOP get_ids;
    CLOSE ids_cursor;

    RETURN response;
END

您不需要使用用户定义的函数,您可以通过下面的查询使用函数直接获取ID

SELECT GROUP_CONCAT(id SEPARATOR ';') AS response
FROM user 
WHERE email LIKE CONCAT('%',value,'%') 
   OR lastname LIKE CONCAT('%',value,'%') 
   OR name LIKE CONCAT('%',value,'%');

您得到的是
错误结果
还是
错误
是的,我得到的是空结果!我用
选择函数的名称(“test”)作为响应调用函数您确定查询成功吗?尝试在IF finished=2块中将response设置为'not foudn'或类似设置,以调试该功能。此外,您还可以使用GROUP_CONCAT执行此操作: