MySQL游标循环即使对于最简单的查询也不返回任何内容
我是MySQL存储过程的新手。 我有一个MySQL存储过程,在这里我定义了一个游标,循环查询结果并将结果转换成字符串。问题是无论我做什么,我的字符串总是返回为null。你能告诉我是什么问题吗MySQL游标循环即使对于最简单的查询也不返回任何内容,mysql,stored-procedures,Mysql,Stored Procedures,我是MySQL存储过程的新手。 我有一个MySQL存储过程,在这里我定义了一个游标,循环查询结果并将结果转换成字符串。问题是无论我做什么,我的字符串总是返回为null。你能告诉我是什么问题吗 CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_findUsers`(in userid int) BEGIN DECLARE c_rowcount int default 0; DECLARE c_finished INT DEFAULT 0; DEC
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_findUsers`(in userid int)
BEGIN
DECLARE c_rowcount int default 0;
DECLARE c_finished INT DEFAULT 0;
DECLARE my_uid INT DEFAULT 0;
DECLARE user_list VARCHAR(65535) DEFAULT ""; /*varchar max*/
DECLARE c_cursor CURSOR FOR select userID from mydb.mytable;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET c_finished = 1;
OPEN c_cursor;
set c_rowcount = found_rows();
getuserIDs : LOOP
FETCH c_cursor INTO my_uid;
IF c_finished = 1 THEN
LEAVE getuserIDs;
END IF;
SET user_list = CONCAT(my_uid,user_list);
END LOOP getuserIDs;
CLOSE c_cursor;
set c_finished = 0;
select @user_list;
END
我安装了“MySQL调试器”,并逐步检查变量/参数的值。看起来程序运行正常。问题很简单也很愚蠢:)
在最后一行,我应该写“选择用户列表”,而不是“选择@user\u列表”。我一去掉@符号,它就像一个符咒。
MySQL版本5.6.17