zoukankan      html  css  js  c++  java
  • MySQL的循环语句使用总结

    REPEAT-UNTIL循环

      [loopname]:REPEAT

          commands;

      UNTIL condition

      END REPEAT [loopname];

      在这种循环里,关键字repeatuntil之间的语句将一直循环执行到给定条件第一次得到满足为止,因为对条件表达式的求值发生在每次循环的末尾,所以整个循环语句至少会执行一次。下面的test(n)函数将返回一个包含着n+1个“*”字符的字符串 

     1 CREATE FUNCTION test(n,INT) RETURNS TEXT
     2 BEGIN
     3 DECLARE i INT DEFAULT 0;
     4 DECLARE s  TEXT DEFAULT ' ';
     5 myloop: REPEAT
     6  SET i=i+1;
     7  SET s=CONCAT(s,"*");
     8 UNTIL i>n END REPEAT;
     9     RETURN s;
    10 END

    WHILE循环

     [loopname]:WHILE condition DO

          commands;

      END WHILE [loopname];

    1 CREATE PROCEDURE test()
    2 BEGIN
    3 DECLARE i INT DEFAULT 0;
    4 WHILE i<40 DO 
    5  INSERT INTO authors(authName) VALUES (CONCAT('authname',i));
    6  SET i=i+1;
    7 END WHILE;
    8 END

     LOOP循环

      loopname:LOOP

          commands;

      END LOOP loopname;

       改造repeat-until循环的例子

     1 CREATE FUNCTION test(n,INT) RETURNS TEXT
     2 BEGIN
     3  DECLARE i INT DEFAULT 0;
     4  DECLARE s TEXT DEFAULT ' ';
     5  myloop:LOOP
     6   SET i=i+1;
     7   SET s=CONCAT(s,"*");
     8   IF i>n THEN LEAVE myloop;END IF;
     9 END LOOP myloop;
    10 RETURN s;
    11 END

    LEAVE和ITERATE语句

      LEAVE loopname命令将使程序代码的执行流程跳出一个循环,还可以用来提前退出BEGIN-END语句块

      ITERATE loopname命令的效果是把循环体里的命令再执行一遍。ITERATE命令不能像LEAVE命令那样在BEGIN-END语句块里使用

     1 CREATE PROCEDURE myProc(IN in_count INT)
     2 BEGIN
     3 DECLARE  num INT DEFAULT 0;
     4 increment:LOOP
     5 SET num=num+1;
     6 IF num<20 THEN ITERATE increment;END IF;
     7 IF num>in_count THEN LEAVE increment;
     8 END IF;
     9 END LOOP increment;
    10 SELECT num;
    11 END

    调用存储过程 CAll myProc(5); 输出 20

  • 相关阅读:
    学习canvas过程中的小菜鸟
    小菜鸟谈html语义化
    mui常用方法
    mui的侧滑菜单如何禁用手势侧滑
    ajax 传递数组参数
    LNMP状态管理命令
    LNMP相关软件目录及文件位置
    ubuntu常用命令
    Ubuntu设置允许root用户登录
    linux一键安装web环境(sh-1.3.0)
  • 原文地址:https://www.cnblogs.com/SamFlynn/p/4489634.html
Copyright © 2011-2022 走看看