存储过程不会返回多行

时间:2015-02-05 10:54:50

标签: mysql stored-procedures

我只想使用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

1 个答案:

答案 0 :(得分:1)

程序必须使用SELECT终止(大约多行)。

但我无法展示你的最终选择。

例如,您可以使用具有相同USER表字段的临时表USERS2(CREATE TEMPORARY TABLE users2)。在循环中你可以用USERS2(INSERT INTO users2 ... and so on)写,所以最后你会写:

SELECT * FROM users2
相关问题