MySQL 遍历结果集

原文出自:http://shitou521.iteye.com/blog/1069027

BEGIN#定义 变量 DECLARE a INT;DECLARE b VARCHAR (30);#此变可有可无,为了给个该存储函数执行成功后给个提示,运行下便知道 DECLARE str VARCHAR (300);#DECLARE s INT;#这个用于处理游标到达最后一行的情况 DECLARE s INT DEFAULT 0;#声明游标cursor_name(cursor_name是个多行结果集) DECLARE cursor_name CURSOR FOR SELECTid,`name`FROMfrom_data;#设置一个终止标记 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000'SET s = 1;SET str = "--";#打开游标 OPEN cursor_name;#获取游标当前指针的记录,读取一行数据并传给变量a,b FETCH cursor_name INTO a, b;#开始循环,判断是否游标已经到达了最后作为循环条件 
WHILE s <> 1 DOSET str = CONCAT(str, s);INSERT INTO to_data (id, `name`) VALUES (a, b);#读取下一行的数据 FETCH cursor_name INTO a, b;END
WHILE;#关闭游标 
CLOSE cursor_name;SELECT str;#语句执行结束 
END