我只想使用CURSOR
程序返回多行。但它返回空值。我已经使用了一个简单的选择查询来进行测试。
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_user`()
READS SQL DATA
BEGIN
DECLARE id INT;
DECLARE name VARCHAR (256);
DECLARE done int default 0;
DECLARE curl CURSOR FOR
SELECT id, name FROM user;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE = 1;
OPEN curl;
data_loop:LOOP
FETCH curl INTO id, name;
IF done=1 THEN
leave data_loop;
END IF;
END LOOP data_loop;
CLOSE curl;
END
答案 0 :(得分:1)
程序必须使用SELECT终止(大约多行)。
但我无法展示你的最终选择。
例如,您可以使用具有相同USER表字段的临时表USERS2(CREATE TEMPORARY TABLE users2
)。在循环中你可以用USERS2(INSERT INTO users2 ... and so on
)写,所以最后你会写:
SELECT * FROM users2