您的位置:首页 > 数据库 > MySQL

mysql存储过程使用CURSOR操作多列数据实用案例

2015-01-04 10:56 801 查看
一、简单案例:

BEGIN

 DECLARE loc_username char(100);

 DECLARE loc_password char(10);

 DECLARE done int DEFAULT 1 ;

 DECLARE mycur CURSOR for SELECT username , password from user limit 0 ,10  ;

 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 0 ;

  open mycur ;

  read_loop: LOOP

    FETCH mycur INTO loc_username , loc_password ;

    if done=0 THEN

     LEAVE read_loop ;

    end if ;

    

    SELECT loc_username , loc_password ;

  end loop ;

  close mycur ; 

END

二、说明:

     1、声明多个变量,对应要取出的多列数据。
    DECLARE loc_username char(100);

         DECLARE loc_password char(10);
2、声明游标控制变量,用来判断游标是否结束以跳出循环。
    DECLARE done int DEFAULT 1 ;
3、声明游标(取出多列数据),为游标控制变量赋值。
    DECLARE mycur CURSOR for SELECT username , password from user limit 0 ,10  ;

         DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 0 ;
4、打开游标。
   open mycur ;
5、使用loop循环遍历游标,取出每行数据,进行操作。
   read_loop: LOOP

FETCH mycur INTO loc_username , loc_password ;

if done=0 THEN
LEAVE read_loop ;
end if ;

SELECT loc_username , loc_password ;

 end loop ;
6、关闭游标。
  close mycur ; 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐