Mysql中的流程控制语句包括:

  1. CASE 
  2.  IF 
  3. ITERATE
  4. LEAVE
  5. LOOP
  6. REPEAT
  7. RETURN
  8. WHILE

MySQL不支持FOR loops循环

LOOP循环

[begin_label:] LOOP
    statement_list
END LOOP [end_label]
CREATE PROCEDURE doiterate(p1 INT)
BEGIN
  label1: LOOP
    SET p1 = p1 + 1;
    IF p1 < 10 THEN
      ITERATE label1;
    END IF;
    LEAVE label1;
  END LOOP label1;
  SET @x = p1;
END;

LOOP实现了一个简单的循环结构,允许重复执行语句列表,该列表由一个或多个语句组成,每个语句以分号(;)分隔符结束。 循环中的语句将重复执行,直到循环终止。 一般情况,通过LEAVE终止循环。 在函数中,也可以使用RETURN,它完全退出函数,也同时终止循环。


REPEAT循环

语法:

[begin_label:] REPEAT
    statement_list
UNTIL search_condition
END REPEAT [end_label]
CREATE PROCEDURE dorepeat(p1 INT)
       BEGIN
         SET @x = 0;
         REPEAT
           SET @x = @x + 1;
         UNTIL @x > p1 END REPEAT;
       END

重复REPEAT语句中的语句列表,直到search_condition表达式为真。所以,REPEAT总是至少进入一次循环。

statement_list由一个或多个语句组成,每个语句以分号(;)语句分隔符结尾。

WHILE DO循环

[begin_label:] WHILE search_condition DO
    statement_list
END WHILE [end_label]
CREATE PROCEDURE dowhile()
BEGIN
  DECLARE v1 INT DEFAULT 5;

  WHILE v1 > 0 DO
    ...
    SET v1 = v1 - 1;
  END WHILE;
END;

只要search_condition表达式为true,就会重复WHILE语句中的语句列表。 statement_list由一个或多个SQL语句组成,每个语句都以分号(;)分隔符结束。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐