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

相关推荐

  • MySQL乐观锁和悲观锁如何实现

    锁分类 MySQL的中锁按照范围主要分为表锁、行锁和页面锁。其中myisam存储引擎只支持表锁,InnoDB不仅仅支持行锁,在一定程度上也支持表锁。按照行为可以分为共享锁(读锁)、排他锁(写锁)和意向锁。按照思想分为乐观锁和悲观锁。 表结构 下面的SQL语句是表的结构: CREATE TABLE `…

    2022年9月8日
    16200
  • vlookup函数多条件查找怎么使用

    vlookup函数多条件查找使用方法 方法一: 1、借助“if命令”可以同时筛选多个条件。 2、在这里,我们需要同时满足“姓名”和“工号”两个条件。 3、这时候,我们使用vlookup函数,先选定“E5&F5”作为条件。 4、接着使用if命令,让后面的调节需要满足姓名和工号两个条件。 5、使…

    2022年9月22日
    57200
  • vlookup函数显示溢出怎么解决

    解决方法 1、一般来说,提示查找错误都是因为没有正确选择对象。 2、例如上述情况,输入的函数为“=VLOOKUP(F:F,A:B,2,0)”导致出错。 3、这时候,我们只需要将函数改为“=VLOOKUP(F2,A:B,2,0)”即可解决问题。 4、如果遇到这类问题,较好的方法就是删除该函数,按照正确…

    2022年9月22日
    2.0K00
  • java源文件的扩展名是哪个

    java源文件扩展名是“.java”;用javac进行编译,生成后缀名为“.class”的字节码文件,保存在和源程序一致的目录下,如源代码有错误,会按行指出错误,修改错误后重新进行编译,直至生成“.class”字节码文件为止。 本教程操作环境:windows7系统、java10版、DELL G3电脑…

    2022年8月27日
    35700
  • jquery ajax如何改成同步

    在jquery中,ajax可以将async设置为false使其同步;默认情况下jquery中的ajax为异步请求,即“async:true”,通过设置参数“asycn:false”即可,语法为“$.ajax({async: false})”。 本文操作环境:windows10系统、jquery3.6…

    2022年9月10日
    1.0K00
  • vlookup函数怎么匹配两个条件

    vlookup函数匹配两个表格的方法 对比两个表格数据 我们先来看一下这两个表格的数据,为了方便大家查看,小编将两个表格的数据放在了一张图片上 位于左边的是生产计划表的数据,而位于右边的则是库存表的数据。对比两个表格我们可以发现,两个表格中虽然产品品种一样 但是顺序不一样,在数据量少的时候可以通过人…

    2022年9月21日
    42800
  • word字体放大快捷键是什么

    word字体放大快捷键 1、 我们只要先按住键盘左下角的“ ctrl ”键。 2、接着按下大键盘右上角的“ 】 ”按键。 3、连续点击,就可以将word文档字体无限放大了。 4、同理,按住“ ctrl ”再点击“ 【 ”就能无限缩小字体。 到此,关于“word字体放大快捷键是什么”的学习就结束了,希…

    2022年9月18日
    28200
  • SQL语句知识点有哪些

    一、SQL简介 SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。 1.什么是数据库 数据库 (DB database) 概念:数据仓库 …

    2022年9月22日
    19700
  • windows谷歌浏览器看视频卡顿如何解决

    解决方法: 方法一: 1、在地址栏输入“chrome://plugins”,随后点击右上角的“+详细信息”。 2、选择停用类型为PPAPI的插件,返回视频查看是否有问题。 方法二: 1、点击浏览器右上方的三个带你进入设置界面。 2、进入设置后点击“显示高级设置”, 3、随后取消勾选“关闭Google…

    2022年9月8日
    77400
  • web文件上传漏洞的示例分析

    文件上传功能模块 文件上传功能是大部分WEB应用的必备功能,网站允许用户自行上传头像、一些社交类网站允许用户上传照片、一些服务类网站需要用户上传证明材料的电子档、电商类网站允许用户上传图片展示商品情况等。然而,看似不起眼的文件上传功能如果没有做好安全防护措施,就存在巨大的安全风险。 文件上传漏洞原理…

    2022年9月22日
    48100
联系我们
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部