DELIMITER $$ CREATE PROCEDURE loop_tutorial() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE value INT; DECLARE cur CURSOR FOR SELECT column_name FROM table_name; // 查询出结果集 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; // 设置循环结束条件 OPEN cur; read_loop: LOOP FETCH cur INTO value; // 读取结果集当前位置的值 IF done THEN LEAVE read_loop; // 如果读取到了结果集末尾,跳出循环 END IF; // 进行你想要的操作,例如输出每条记录的值 SELECT value; END LOOP; CLOSE cur; END$$ DELIMITER ;
在这个存储过程中,大家首先声明了一个名为cur的游标来查询table_name表中的结果集。接着,大家使用DECLARE语句创建了一个名为done的变量来标记循环是否结束,并设置了一个对应的处理程序,如果循环到了结果集的末尾,就将done的值设置为TRUE。
接下来,大家使用OPEN语句打开游标,然后在第一个循环中使用FETCH语句来获取结果集的第一个值。如果done的值是TRUE,大家就跳出循环,否则就继续进行本地操作,例如输出当前记录的值。最后,大家使用CLOSE语句关闭游标。
使用MySQL 存储过程可以简化复杂查询,并且提供了灵活的操作手段。通过使用循环来遍历结果集,您可以更好的控制您的数据。创造出更强大的操作效率。希望这篇文章对您使用MySQL 存储过程循环结果集提供了帮助。