【转载】如何在MySQL存储过程中遍历查询结果集
转载地址:http://blog.jinshui8.com/blog/view/id-37.html
在储过程中循环查询结果需要使用到CURSOR(光标)
sql Code
- 
CREATE PROCEDURE curdemo() 
- 
BEGIN
- 
DECLARE done INT DEFAULT 0; 
- 
DECLARE a INT; 
- 
DECLARE b CHAR(225); 
- 
DECLARE cur CURSOR FOR SELECT id,title FROM test.t1; -- 这个语句声明一个光标保存记录集。也可以在子程序中定义多个光标,但是一个块中的每一个光标必须有唯一的名字 
- 
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; 
- 
- 
OPEN cur;
- 
- 
REPEAT -- 循环
- 
FETCH cur INTO a, b;-- 这个语句用指定的打开光标读取下一行(如果有下一行的话),并且前进光标指针
- 
IF NOT done THEN
- 
INSERT INTO test.t2 VALUES (a,b);
- 
END IF;
- 
UNTIL done END REPEAT;-- 结束循环 
- 
- 
CLOSE cur;-- 这个语句关闭先前打开的光标。
- 
END
Parsed in 0.011 seconds at 65.03 KB/s, using GeSHi 1.0.8.11
本文为原创,如需转载请注明出处和本文链接!
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号