Mysql 使用光标在循环中进行选择

Mysql 使用光标在循环中进行选择,mysql,Mysql,我得到了这个存储过程: DELIMITER // DROP PROCEDURE IF EXISTS cursor_example// CREATE PROCEDURE cursor_example() BEGIN DECLARE niche_id INT; DECLARE niche_name VARCHAR(100); DECLARE curl CURSOR FOR SELECT * FROM `niche`; DECLARE CONTINUE HAN

我得到了这个存储过程:

    DELIMITER //
DROP PROCEDURE IF EXISTS cursor_example//
CREATE PROCEDURE cursor_example()
BEGIN
    DECLARE niche_id INT;
    DECLARE niche_name VARCHAR(100);

    DECLARE curl CURSOR FOR SELECT * FROM `niche`;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

    OPEN curl;
      my_loop:LOOP
        FETCH curl INTO niche_id,niche_name;
        IF done=1 THEN
           LEAVE my_loop;
        END IF;      
      END LOOP my_loop;
    CLOSE curl;
END//

DELIMITER ;
我想输出curl获取的所有内容。所以我想把SELECT语句放在循环的内部或外部,但这并不能给出我想要的结果。如何从该游标返回所有sql结果


与其他简单的unbound-SELECT语句相比,使用游标有哪些优点。我的意思是,只需使用select语句,而不必编写所有光标代码,就可以得到我想要的结果。

您想做什么?如果您只想“输出”数据,那么为什么不使用视图呢?至于你关于游标的问题,如果选择满足你的需要,游标相对于简单的选择没有任何优势。遗憾的是,这里没有足够的人了解这个主题