PHP速学视频免费教程(入门到精通)
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
本篇文章给大家带来了关于mysql的相关知识,主要介绍了mysql存储过程之流程控制while、repeat、loop循环,循环中的代码会运行特定的次数,或者是运行到特定条件成立时结束循环,下面一起来看一下,希望对大家有帮助。
推荐学习:mysql视频教程
循环分类:
循环控制:
leave 类似于 break,跳出,结束当前所在的循环
iterate类似于 continue,继续,结束本次循环,继续下一次
【标签:】while 循环条件 do 循环体; end while【 标签】;
-- 创建测试表 create table user ( uid int primary_key, username varchar ( 50 ), password varchar ( 50 ) );
-- -------存储过程-while delimiter $$ create procedure proc16_while1(in insertcount int) begin declare i int default 1; label:while i<p><strong>存储过程语法是固定的:</strong>delimiter $$ create peocedure 循环名(参数)begin 代码 end $$ delimiter;</p><p>注意在写循环体的时候,必须要要有定义循环的初识变量,采用declare i int default 默认值</p><p><strong>然后就是dlabel:</strong>while 判断条件 do<strong> </strong>循环体 <strong>end while label;</strong> end && 必须要有</p><pre class="brush:sql;">-- -------存储过程-while + leave truncate table user; delimiter $$ create procedure proc16_while2(in insertcount int) begin declare i int default 1; label:while i<p>如果在内部需要跳出循环的话,采用if 判断 ,但是最后需要end if 结尾</p><p>这里的leave就是 跳出循环,相对于break</p><pre class="brush:sql;">-- -------存储过程-while+iterate truncate table user; delimiter $$ create procedure proc16_while3(in insertcount int) begin declare i int default 1; label:while i<p>这里的iterate 相对于continue 遇到就不执行下面的代码</p><h2>repeat循环</h2><pre class="brush:sql;">[标签:]repeat 循环体; until 条件表达式 end repeat [标签];
-- -------存储过程-循环控制-repeat use mysql7_procedure; truncate table user; delimiter $$ create procedure proc18_repeat(in insertCount int) begin declare i int default 1; label:repeat insert into user(uid, username, password) values(i,concat('user-',i),'123456'); set i = i + 1; until i > insertCount end repeat label; select '循环结束'; end $$ delimiter ; call proc18_repeat(100);
这个相对于是,无论如何都会执行一次的循环,然后是在内部进行判断,如果满足了就直接跳出
[标签:] loop 循环体; if 条件表达式 then leave [标签]; end if; end loop;
-- -------存储过程-循环控制-loop truncate table user; delimiter $$ create procedure proc19_loop(in insertCount int) begin declare i int default 1; label:loop insert into user(uid, username, password) values(i,concat('user-',i),'123456'); set i = i + 1; if i > 5 then leave label; end if; end loop label; select '循环结束'; end $$ delimiter ; call proc19_loop(10);
这个和repeat不同的是,需要执行之后,利用leave 跳出循环,无论是使用哪种都可以达到我们需要的效果,但是在业务中的应用场景,while还是相对比较的多。
推荐学习:mysql视频教程
已抢6717个
抢已抢90861个
抢已抢14323个
抢已抢50399个
抢已抢189616个
抢已抢86052个
抢