一、简单案例:
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 ;