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执行此操作: