MySQL流程控制之while、repeat、loop循环实例分析

MySQL流程控制之while、repeat、loop循环实例分析

前言

  • 循环是一段在程序中只出现一次,但可能会连续运行多次的代码。

  • 循环中的代码会运行特定的次数,或者是运行到特定条件成立时结束循环。

MySQL流程控制之while、repeat、loop循环实例分析

循环分类:

循环控制:

leave 类似于 break,跳出,结束当前所在的循环

iterate类似于 continue,继续,结束本次循环,继续下一次

while循环

【标签:】while 循环条件 do循环体;end while【 标签】;
-- 创建测试表create table user (uid int primary_key,username varchar ( 50 ),password varchar ( 50 ));
-- -------存储过程-whiledelimiter $$create procedure proc16_while1(in insertcount int)begindeclare i int default 1;label:while i<=insertcount doinsert into user(uid,username,`password`) values(i,concat('user-',i),'123456');set i=i+1;end while label;end $$delimiter ;call proc16_while(10);

存储过程语法是固定的:delimiter $$ create peocedure 循环名(参数)begin 代码 end $$ delimiter;

注意在写循环体的时候,必须要要有定义循环的初识变量,采用declare i int default 默认值

然后就是dlabel:while 判断条件 do 循环体 end while label; end && 必须要有

-- -------存储过程-while + leavetruncate table user;delimiter $$create procedure proc16_while2(in insertcount int)begindeclare i int default 1;label:while i<=insertcount doinsert into user(uid,username,`password`) values(i,concat('user-',i),'123456');if i=5 then leave label;end if;set i=i+1;end while label;end $$delimiter ;call proc16_while2(10);

如果在内部需要跳出循环的话,采用if 判断 ,但是最后需要end if 结尾

这里的leave就是 跳出循环,相对于break

-- -------存储过程-while+iteratetruncate table user;delimiter $$create procedure proc16_while3(in insertcount int)begindeclare i int default 1;label:while i<=insertcount doset i=i+1;if i=5 then iterate label;end if;insert into user(uid,username,`password`) values(i,concat('user-',i),'123456');end while label;end $$delimiter ;call proc16_while3(10);

这里的iterate 相对于continue 遇到就不执行下面的代码

repeat循环

repeat循环体;until 条件表达式end repeat [标签];
-- -------存储过程-循环控制-repeatuse mysql7_procedure;truncate table user;delimiter $$create procedure proc18_repeat(in insertCount int)begindeclare i int default 1;label:repeatinsert into user(uid, username, password) values(i,concat('user-',i),'123456');set i = i + 1;until i > insertCountend repeat label;select '循环结束';end $$delimiter ;call proc18_repeat(100);

这个相对于是,无论如何都会执行一次的循环,然后是在内部进行判断,如果满足了就直接跳出

loop循环

 loop循环体;if 条件表达式 thenleave [标签];end if;end loop;
-- -------存储过程-循环控制-looptruncate table user;delimiter $$create procedure proc19_loop(in insertCount int)begindeclare i int default 1;label:loopinsert into user(uid, username, password) values(i,concat('user-',i),'123456');set i = i + 1;if i > 5thenleave label;end if;end loop label;select '循环结束';end $$delimiter ;call proc19_loop(10);

这个和repeat不同的是,需要执行之后,利用leave 跳出循环,无论是使用哪种都可以达到我们需要的效果,但是在业务中的应用场景,while还是相对比较的多。

以上就是“MySQL流程控制之while、repeat、loop循环实例分析”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

文章标题:MySQL流程控制之while、repeat、loop循环实例分析,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/24361

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月10日 下午11:57
下一篇 2022年9月10日 下午11:58

相关推荐

  • windows谷歌浏览器控件怎么添加

    谷歌浏览器添加控件的方法: 1、首先打开谷歌浏览器点击“自定义及控制”。 2、随后点击“更多工具”打开“扩展程序”。 3、进入已经安装了的插件页面。 4、随后点击左上角的“扩展程序”。 5、之后打开谷歌网上应用店搜索“Tencent”。 6、将需要的程序添加到扩展程序即可。 读到这里,这篇“wind…

    2022年9月8日
    62600
  • windows 0xc000012f如何解决

    解决方法: 方法一: 1、首先,根据错误描述来看,可能是dll文件错误。 2、我们可以直接使用dll修复助手,来一键修复它们。 3、下载安装完成后,运行软件,根据提示关闭杀毒软件就可以自动修复了。 4、修复完成后重启电脑,看看还有没有错误代码。 方法二: 1、如果修复完文件还有错误,那就可以尝试禁用…

    2022年9月15日
    94400
  • windows softcnkiller怎么使用

    softcnkiller使用方法 1、首先下载这款软件。 2、下载完成后将下载好的压缩包解压出来。 3、解压完成后进入文件夹,运行“softcnkiller.exe” 4、打开后软件会自动扫描你系统之中存在的流氓软件。 5、对于你想要处理的内容,只要选中它,并点击右下角“处理选中” 6、软件逻辑是通…

    2022年9月21日
    70300
  • Linux系统中怎么加密文件

    在Linux系统安装时选择使用EFS 首先将介绍一个非常简单的方法来使用EFS文件系统。以Fedora的安装步骤为例子,选择相关选项进行安装就可以方便地进行使用了。 用户可以在空闲空间新建分区,也可以选择某个分区进行编辑,还可以删除某些分区。在图 1中,需要选中[加密文件系统]选项,并且,根据系统要…

    2022年9月1日
    52200
  • Input标签自动校验功能去除怎么实现

    自动校验 注:以下输入框包含input、textarea 事情是这样的,上个星期,接到了一个需求,要求去除掉项目中的输入框的自动拼写检查功能,也就是下图出现的红线,这个检查是浏览器自带的 解决方法 其实是有解决方法的,而且也不难,很简单,只需要在输入框标签上加上一个属性spellcheck=fals…

    2022年9月20日
    88100
  • mysql的安装路径如何查看

    查看方法:1、鼠标右击“计算机”图标,在打开的菜单中点击“管理”;2、依次点击“服务和应用程序”-“服务”;3、在右侧服务列表中,找到mysql服务;4、选中mysql服务,点击鼠标右键,在打开的菜单中选择“属性”;5、在“mysql属性”弹窗中,查看“可执行文件路径”选项的值即可,该选项的值就是M…

    2022年9月24日
    2.0K00
  • Java Bean作用域是什么及怎么实现

    PS:Java 中的公共类可称之为 Bean 或 Java Bean。 1.作用域 Bean 的作用域是指 Bean 在 Spring 整个框架中的某种行为模式。比如 singleton 单例作用域,就表示 Bean 在整个 Spring 中只有一份,它是全局共享的,当有人修改了这个值之后,那么另一…

    2022年8月31日
    1.2K00
  • win8如何取消开机账户登录

    win8取消开机账户登录的方法 1、win+r打开运行界面。 2、对话框输入“netplwiz”,回车确定。 3、然后把“要使用本计算机,用户必须输入用户名和密码”前面的勾去掉。 4、点击确定之后系统会再次弹出一个密码输入框,这个时候我们再次输入密码点击确定就可以了。 关于“win8如何取消开机账户…

    2022年9月24日
    41100
  • sumif函数如何使用

    sumif函数的使用方法: 1、首先进入excel,然后选择单元格, 点击fx,输入:SUMIF点击“转到”。 2、然后选择SUMIF函数,点击确定,选择“求和范围”。 3、然后点击“criteria”输入求和条件, 图中以>60数值举例,最后点击确定即可。 到此,相信大家对“sumif函数如…

    2022年8月27日
    45900
  • python怎么导出项目需要的库

    今天小编给大家分享一下python怎么导出项目需要的库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 输入命令: pip freeze > requirements.txt 产生…

    2022年8月27日
    57800
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部