暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql用游标打印1到100

一品数据邦 2021-04-12
2163


创建一个用来放数据的表

create table id(x int);

 

定义存储过程和游标

delimiter |

create procedure printn()

begin

declare i int;

declare n int default 1;

declare done int default false;              ----------设置done的初始值为false

declare cur cursor for select x from id;       ------------定义游标

declare continue handler for not found set done = true; ------当找不到下一条记录时,设置donetrue

while n <= 100 do

       insert into id values(n);      ---------------1100插入id表中

       set n = n + 1;

end while;

open cur;       -----------打开游标

read_loop:loop  -----------设置一个循环标识

fetch cur into i;  -----------取出当前游标值存入变量i

if done then    -----------直到取最后一条记录,done值都为false,继续read_loop这个循环

      leave read_loop;

end if;

select i;   -----------打印结果(此处可以做任何你想做的操作)

end loop;

close cur;  -----------关闭游标

end |

 

delimiter ;

切换回正常的分隔符

call printn;

调用存储过程printn

 

关于MySQL游标的几点说明:

1MySQL函数无法使用返回多行结果的语句,游标可以帮你选择出某个结果集;

2,使用游标可以轻易的取出在检索出来的行中前进或后退一行或多行的结果;

3,游标可以遍历返回的多行结果;

4MySQL游标只适用于存储过程和函数


文章转载自一品数据邦,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论