下面是一个示例MySQL存储过程:
DELIMITER $$
CREATE PROCEDURE sp_example()
BEGIN
DECLARE done BOOLEAN DEFAULT FALSE;
DECLARE name VARCHAR(50);
DECLARE age INT;
DECLARE cur_example CURSOR FOR
SELECT name, age FROM example_table;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur_example;
my_loop: LOOP
FETCH cur_example INTO name, age;
IF done THEN
LEAVE my_loop;
END IF;
/* 在此处执行操作 */
END LOOP;
CLOSE cur_example;
END$$
DELIMITER ;
首先,大家定义了一个游标cur_example,该游标从example_table表中选择数据。然后,大家设置了一个事件处理程序,以便在没有更多行可供检索时将done标记为TRUE。接着,大家打开游标并开始执行循环。在每次迭代中,大家从游标中获取数据,并验证是否获得了所有行。如果没有更多行,则大家离开循环,否则大家可以在此处执行任何需要的操作。最后,大家关闭游标。
总之,游标for循环是MySQL存储过程中进行流程控制的一种强大方式。程序员可以使用它来遍历记录集并为每个行执行操作。