MySQL存储过程中的循环怎么写
在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体介绍了。
这几个循环语句的格式如下:
WHILE……DO……END WHILE
REPEAT……UNTIL END REPEAT
LOOP……END LOOP
GOTO。
下面首先使用第一种循环编写一个例子。
DROP PROCEDURE IF EXISTS `pro10`;
DELIMITER $$
CREATE PROCEDURE `pro10`()
BEGIN-- 定义变量DECLARE v_i int unsigned DEFAULT 0;WHILE v_i < 5 DOSELECT v_i;SET v_i = v_i+1;END WHILE;
END $$
DELIMITER ;CALL pro10();
再来看一下第二个循环控制指令 REPEAT……END REPEAT。使用REPEAT循环控制语句编写下面这个存储过程:
DROP PROCEDURE IF EXISTS `pro11`;
DELIMITER $$
CREATE PROCEDURE `pro11`()
BEGIN-- 定义变量DECLARE v_i int unsigned DEFAULT 0;REPEATSELECT v_i;SET v_i = v_i+1;UNTIL v_i >= 5 END REPEAT;
END $$
DELIMITER ;CALL pro11();
再来看一下第三个循环控制语句LOOP……END LOOP。编写一个存储过程程序如下:
DROP PROCEDURE IF EXISTS `pro12`;
DELIMITER $$
CREATE PROCEDURE `pro12`()
BEGIN-- 定义变量DECLARE v_i int unsigned DEFAULT 0;LOOP_LABEL:LOOPSELECT v_i;SET v_i = v_i+1;IF v_i >= 5 THENLEAVE LOOP_LABEL;END IF;END LOOP;
END $$
DELIMITER ;CALL pro12();
DROP PROCEDURE IF EXISTS `pro13`;
DELIMITER $$
CREATE PROCEDURE `pro13`()
BEGIN-- 定义变量DECLARE v_i int unsigned DEFAULT 0;LOOP_LABEL:LOOPIF v_i = 3 THENSET v_i = v_i+1;ITERATE LOOP_LABEL; # => continueEND IF;SELECT v_i;SET v_i = v_i+1;IF v_i >= 5 THENLEAVE LOOP_LABEL; # => break;END IF;END LOOP;
END $$
DELIMITER ;CALL pro13();
MySQL存储过程中的循环怎么写相关推荐
- MySQL存储过程中的3种循环
MySQL存储过程中的3种循环 在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易 ...
- linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法
中文乱码无论在何时都是一个头疼的问题,mysql的存储过程参数也同样存在这个问题. 1.直接使用insert into语句没问题,能够正常插入汉字. 2.把insert into语句移到Procedu ...
- mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别
在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...
- mysql扩展中如何处理结果集_我们如何处理MySQL存储过程中的结果集?
我们可以使用游标来处理存储过程中的结果集.基本上,游标允许我们迭代查询返回的一组行并相应地处理每一行. 为了演示在MySQL存储过程中CURSOR的用法,我们基于以下名为" student_ ...
- mysql存储过程中as_Mysql存储过程中的delimiter
这个命令与存储过程没什么关系吧. 其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了. 默认情况下,delimiter是分号;.在命令行客户端中,如果有一行命令以分号结束, ...
- mysql 存储过程中limit
mysql 存储过程中limit 1.mysql的高版本(5.5),存储过程中的limit可以使用变量,如下:select * from student limit iStart,iNum; 2.my ...
- mysql 存储过程中 if else的使用 和赋值方式
mysql 存储过程中 if else的使用 和赋值方式 在mysql 中顶一个变量的语法 DECLARE variable_name datatype(size) DEFAULT default_v ...
- mysql存储过程set什么意思_浅谈MySQL存储过程中declare和set定义变量的区别
在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...
- mysql 日期循环_如何在mysql存储过程中循环日期时间
即时通讯使用mysql存储过程,如何制作一个循环,每1小时变量strathour将有1小时的间隔然后返回查询的总数.当starthour小于11月的日期时,它将具有1小时的间隔并执行查询. 这是我的代 ...
最新文章
- 12月5日 第二冲刺周期个人站立会议内容报告(第五天)
- mysql数据库存储引擎选择_MySQL数据库性能优化之存储引擎选择
- Django(part8)--响应及HttpResponse对象
- 【十二省联考2019】字符串问题【后缀自动机】【拓扑排序】
- 重启php7.0-fpm
- 无法显示jinglingzhoushou-2.0.4.AppImage
- 组态王JAVA,组态王肿么实现点击按钮以后可以实现画面的运行
- php mysql后台管理模板_[开源]TP6后台管理模板
- 电视不正常Android镜像投屏,爱奇艺乐播投屏
- 德州停电悲剧不会重演 智慧用电是新方向
- UE4-目录结构简介
- Kettle carte部署与运行
- wi-fi频宽设置_如何设置TP-Link Wi-Fi智能插头
- 求解:Assertion failed (size.width0 size.height0) in cv::imshow, file C:\build\master_winpack-buil
- 嵌入式操作系统判断题
- mysql授权连接_MySQL 连接认证授权步骤
- NOIP2016 “西湖边超萌小松鼠” 模拟赛
- 点云数据类型分析 sensor_msgs/PointCloud2
- 在岸人民币和离岸人民币的区别
- SAP ABAP 报表新增字段,重新生成维护视图,以及过程中产生的问题处理
热门文章
- 前几行 python_调包侠神器2.0发布,Python机器学习模型搭建只需要几行代码
- Leetcode每日一题:1002.find-common-characters(查找常用字符串)
- Java并发(二)——ThreadLocal
- python 数据写入json文件时中文显示Unicode编码问题
- 第二十三:Appium+Pytest实现app并发测试
- java接口自动化(三) - 手工接口测试到自动化框架设计之鸟枪换炮
- Java自动化测试框架-07 - TestNG之Factory篇 - (详细教程)
- idea overlays文件夹_Intellij IDEA 文件修改提示星号
- 浙江万里学院计算机专业宿舍,2020年浙江万里学院宿舍条件环境照片 宿舍空调相关配置介绍...
- 通用Shell脚本,可以优雅的启动/关闭/重启/JAVA服务