MySQL的循环语句使用总结
REPEAT-UNTIL循环
[loopname]:REPEAT
commands;
UNTIL condition
END REPEAT [loopname];
在这种循环里,关键字repeat和until之间的语句将一直循环执行到给定条件第一次得到满足为止,因为对条件表达式的求值发生在每次循环的末尾,所以整个循环语句至少会执行一次。下面的test(n)函数将返回一个包含着n+1个“*”字符的字符串 
CREATE FUNCTION test(n,INT) RETURNS TEXT
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE s TEXT DEFAULT ' ';
myloop: REPEAT
SET i=i+1;
SET s=CONCAT(s,"*");
UNTIL i>n END REPEAT;
RETURN s;
END
WHILE循环
[loopname]:WHILE condition DO
commands;
END WHILE [loopname];
CREATE PROCEDURE test()
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i<40 DO
INSERT INTO authors(authName) VALUES (CONCAT('authname',i));
SET i=i+1;
END WHILE;
END
LOOP循环
loopname:LOOP
commands;
END LOOP loopname;
改造repeat-until循环的例子
CREATE FUNCTION test(n,INT) RETURNS TEXT
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE s TEXT DEFAULT ' ';
myloop:LOOP
SET i=i+1;
SET s=CONCAT(s,"*");
IF i>n THEN LEAVE myloop;END IF;
END LOOP myloop;
RETURN s;
END
LEAVE和ITERATE语句
LEAVE loopname命令将使程序代码的执行流程跳出一个循环,还可以用来提前退出BEGIN-END语句块
ITERATE loopname命令的效果是把循环体里的命令再执行一遍。ITERATE命令不能像LEAVE命令那样在BEGIN-END语句块里使用
CREATE PROCEDURE myProc(IN in_count INT)
BEGIN
DECLARE num INT DEFAULT 0;
increment:LOOP
SET num=num+1;
IF num<20 THEN ITERATE increment;END IF;
IF num>in_count THEN LEAVE increment;
END IF;
END LOOP increment;
SELECT num;
END
调用存储过程 CAll myProc(5); 输出 20
MySQL的循环语句使用总结的更多相关文章
- MySQL循环语句之while循环测试
转自:http://www.nuoweb.com/database/7614.html MySQL有循环语句操作,while 循环.loop循环和repeat循环,目前我只测试了 while 循环,下 ...
- MySQL 存储过程循环
MySQL 存储过程循环 MySQL循环语句(包括WHILE,REPEAT和LOOP)来根据条件反复运行代码块. MySQL提供循环语句,允许您根据条件重复执行一个SQL代码块. MySQL中有三个 ...
- MySQL与Oracle 差异比较之四条件循环语句
循环语句 编号 类别 ORACLE MYSQL 注释 1 IF语句使用不同 IF iv_weekly_day = 'MON' THEN ii_weekly_day := 'MON';ELS ...
- MySQL循环语句实例教程 mysql while循环测试
在mysql数据库中操作同样有循环语句操作,标准的循环方式: while 循环 . loop 循环和repeat循环.还有一种非标准的循环: goto. 鉴于goto 语句的跳跃性会造成使用的的思维混 ...
- 第二百八十七节,MySQL数据库-条件语句、循环语句、动态执行SQL语句
MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGIN ; THEN ; ELSEIF ...
- jmeter数据库,charles抓包,Python循环语句
jmeter数据库,charles抓包,Python循环语句 一.Jemeter数据库 添加jar包数据库 jemeter=>浏览 添加JDBC Connection Configuration ...
- MySQL中SQL语句2
上一片介绍了一些基本的SQL的增删改查,这一片会介绍一些进阶的SQL语句使用. MySQL中的视图 视图是什么?当我们总是查询几张表的某个字段时,可以创建一张虚拟表,把这几个字段写入这个虚拟的表,这样 ...
- MySQL---存储过程 及 条件语句、循环语句
存储过程 存储过程是一个SQL语句集合,当主动去调用存储过程时,其中内部的SQL语句会按照逻辑执行. 1.创建存储过程 -- 创建存储过程 delimiter // create procedure ...
- 循环语句for基本概述
循环语句for基本概述 01. for循环基础语法 for 变量名 in [ 取值列表 ]do 循环体done 02. for循环基本使用示例 #取值列表有多种取值方式,可以直接读取in后面的值,默认 ...
随机推荐
- ajax简单案例:返回json型
主页: <!--输入代号点击查询查到本代号的人名--> <body> <div> 请输入代号:<input type="text" id= ...
- 【控件扩展】带圆角、边框、渐变的panel
下载地址: http://files.cnblogs.com/chengulv/custompanel_demo.zip using System; namespace LC.Fun { /// & ...
- LintCode "Subarray Sum II"
Sliding window doesn't work. So it is a typical partial_sum base solution. As below. However if you ...
- FFTW简介及使用
http://fftw.org/ FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) i ...
- Spring小结
一.环境搭建 创建Maven项目 一般pom.xml会出错,本地若无相应版本的jar包,则无法下载或下载速度非常慢,我的解决方案是,查找本地仓库的jar,修改为本地仓库有的jar即可 pom.xml的 ...
- 在 Perl 中使用 Getopt::Long 模块来接收用户命令行参数
我们在linux常常用到一个程序需要加入参数,现在了解一下 perl 中的有关控制参数的模块 Getopt::Long ,比直接使用 @ARGV 的数组强大多了.我想大家知道在 Linux 中有的参数 ...
- C++11的新类型转换方法
转载自 http://blog.csdn.net/luoweifu/article/details/20493177 基于C++11标准 如果你用的编译器是基于最新的C++11标准,那么这个问题就变的 ...
- [运维-服务器 – 2A] – nginx下绑定域名
这个篇文章今天(2016-01-21)才有幸写了,因为自己对nginx部署以前没玩过,还得感谢下我们数字化的总经理.在这里记录下自己成长的经验,与遇到的问题. 因为自己的域名是在万网上买的,解析无法直 ...
- Sprite的原点
对于某些类型的游戏,例如飞行射击游戏或者顶视角的2D游戏,通常会直接选取图片的中心做为原点.但对于<冰杖秘闻>这样的 2D ARPG 来说,会更多的从三维场景的角度来选择原点,即选择物品底 ...
- vim 学习日志(3):跳到行尾、行首、文件尾、文件首、加密
vi操作: 1.跳到文本的最后一行:按“G”,即“shift+g” 2.跳到最后一行的最后一个字符 : 先重复1的操作即按“G”,之后按“$”键,即“shift+4”. 3.跳到第一行的第一个字符:先 ...