【转载】如何在MySQL存储过程中遍历查询结果集

【转载】如何在MySQL存储过程中遍历查询结果集

转载地址:http://blog.jinshui8.com/blog/view/id-37.html

在储过程中循环查询结果需要使用到CURSOR(光标)

sql Code
  1. CREATE PROCEDURE curdemo()
    
  2. BEGIN
    
  3.   DECLARE done INT DEFAULT 0;
    
  4.   DECLARE a INT;
    
  5.   DECLARE b CHAR(225);
    
  6.   DECLARE cur CURSOR FOR SELECT id,title FROM test.t1; -- 这个语句声明一个光标保存记录集。也可以在子程序中定义多个光标,但是一个块中的每一个光标必须有唯一的名字
    
  7.   DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
    
  8.  
  9.   OPEN cur;
    
  10.  
  11.   REPEAT -- 循环
    
  12.     FETCH cur INTO a, b;-- 这个语句用指定的打开光标读取下一行(如果有下一行的话),并且前进光标指针
    
  13.     IF NOT done THEN
    
  14.        INSERT INTO test.t2 VALUES (a,b);
    
  15.     END IF;
    
  16.   UNTIL done END REPEAT;-- 结束循环
    
  17.  
  18.   CLOSE cur;-- 这个语句关闭先前打开的光标。
    
  19. END
    
Parsed in 0.011 seconds at 65.03 KB/s, using GeSHi 1.0.8.11

本文为原创,如需转载请注明出处和本文链接!

posted @ 2017-08-16 17:48 Newman·Li 阅读( ...) 评论( ...) 编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值