游标的使用

游标在存储过程中相当于一个循环

delimiter $$

drop procedure if exists 存储过程名$$

create procedure 存储过程名(可以带参数)

declare 变量 类型 ;
declare 游标名 cursor for select * from 表名;(这里的意思是在查出来的数据上定义一个游标,用来循环出数据)

/* mysql 不知道为什么用异常加入判断
* 此请参考官方文档 20.2.11. 光标 光标
* 这把 游标 异常后 捕捉
* 并设置 循环使用 变量 tmpname 为 null 跳出循环。
*/
declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tname = null;

open 游标名
fetch cu into tname;游标向下一步
/*循环游标*/
while(tname is not null) do
set tname=concat(tname,";");
set allName=concat(allName,tname);
fetch cu into tname;
/*循环结束*/
end while;
/*关闭游标*/
close cu;
select allName;
END$$
DELIMITER ;
call 存储过程名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值