REPEAT-UNTIL循环

[loopname]:REPEAT

commands;

UNTIL condition

END REPEAT [loopname];

在这种循环里,关键字repeatuntil之间的语句将一直循环执行到给定条件第一次得到满足为止,因为对条件表达式的求值发生在每次循环的末尾,所以整个循环语句至少会执行一次。下面的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的循环语句使用总结的更多相关文章

  1. MySQL循环语句之while循环测试

    转自:http://www.nuoweb.com/database/7614.html MySQL有循环语句操作,while 循环.loop循环和repeat循环,目前我只测试了 while 循环,下 ...

  2. MySQL 存储过程循环

    MySQL  存储过程循环 MySQL循环语句(包括WHILE,REPEAT和LOOP)来根据条件反复运行代码块. MySQL提供循环语句,允许您根据条件重复执行一个SQL代码块. MySQL中有三个 ...

  3. MySQL与Oracle 差异比较之四条件循环语句

    循环语句 编号 类别 ORACLE MYSQL 注释 1 IF语句使用不同 IF iv_weekly_day = 'MON' THEN       ii_weekly_day := 'MON';ELS ...

  4. MySQL循环语句实例教程 mysql while循环测试

    在mysql数据库中操作同样有循环语句操作,标准的循环方式: while 循环 . loop 循环和repeat循环.还有一种非标准的循环: goto. 鉴于goto 语句的跳跃性会造成使用的的思维混 ...

  5. 第二百八十七节,MySQL数据库-条件语句、循环语句、动态执行SQL语句

    MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGIN ; THEN ; ELSEIF ...

  6. jmeter数据库,charles抓包,Python循环语句

    jmeter数据库,charles抓包,Python循环语句 一.Jemeter数据库 添加jar包数据库 jemeter=>浏览 添加JDBC Connection Configuration ...

  7. MySQL中SQL语句2

    上一片介绍了一些基本的SQL的增删改查,这一片会介绍一些进阶的SQL语句使用. MySQL中的视图 视图是什么?当我们总是查询几张表的某个字段时,可以创建一张虚拟表,把这几个字段写入这个虚拟的表,这样 ...

  8. MySQL---存储过程 及 条件语句、循环语句

    存储过程 存储过程是一个SQL语句集合,当主动去调用存储过程时,其中内部的SQL语句会按照逻辑执行. 1.创建存储过程 -- 创建存储过程 delimiter // create procedure ...

  9. 循环语句for基本概述

    循环语句for基本概述 01. for循环基础语法 for 变量名 in [ 取值列表 ]do 循环体done 02. for循环基本使用示例 #取值列表有多种取值方式,可以直接读取in后面的值,默认 ...

随机推荐

  1. 转:在ElasticSearch之下(图解搜索的故事)

    ElasticSearch 2 (9) - 在ElasticSearch之下(图解搜索的故事) 摘要 先自上而下,后自底向上的介绍ElasticSearch的底层工作原理,试图回答以下问题: 为什么我 ...

  2. [Hibernate] - Annotations - One To One

    Hibernate annotation 一对一的两种实现: 1)幅表中有主表的主键ID做为引用 2)幅表的主键即为主表的ID hibernate.cfg.xml <?xml version=& ...

  3. Angular学习(4)- 数组双向梆定

    示例: <!DOCTYPE html> <html ng-app="MyApp"> <head> <title>Study 4< ...

  4. Bower => 前端开发也有包管理器

    摘要: 一直以来npm,pip等各种包管理器好像都和前端开发没什么太大关系,当然因为nodejs的原因可能感觉npm会亲切一些,不过终归不是针对客户端的包管理工作,所以Bower的出现确实让人眼前一亮 ...

  5. erlang的escript脚本

    参考霸爷的博客 测试例子 #!/usr/bin/env escript %%! -smp enable -sname mmcshadow -mnesia debug verbose[/color] m ...

  6. HDU2490 parade

    题目大意:一个n+1行m+1列的表格,每个格子两个数w和c,表示经过该格子的happy和体力消耗值tireness.现在从最下面任意处开始,可以向左向右向上走.但不能向下.每个格子不能经过两次.在每一 ...

  7. java ScriptEngine 使用 (支持JavaScript脚本,eval()函数等)

    Java SE 6最引人注目的新功能之一就是内嵌了脚本支持.在默认情况下,Java SE 6只支持JavaScript,但这并不以为着Java SE 6只能支持JavaScript.在Java SE ...

  8. C++11的新类型转换方法

    转载自 http://blog.csdn.net/luoweifu/article/details/20493177 基于C++11标准 如果你用的编译器是基于最新的C++11标准,那么这个问题就变的 ...

  9. iphone Dev 开发实例9:Create Grid Layout Using UICollectionView in iOS 6

    In this tutorial, we will build a simple app to display a collection of recipe photos in grid layout ...

  10. html元素的显示和隐藏

    div的visibility可以控制div的显示和隐藏,但是隐藏后页面显示空白: style="visibility: hidden;" document.getElementBy ...