MySQL - IF、WHILE和LOOP等流程控制语句

概述

这些语句都不可单独使用,主要用于 存储过程 PROCEDURE 和 函数 FUNCTION 中。

IF语句

说明:
IF 语句用来进行条件判断,根据是否满足条件(可包含多个条件),来执行不同的语句。
基本形式:

IF search_condition THEN statement_list
    [ELSEIF search_condition THEN statement_list]...
    [ELSE statement_list]
END IF
  1. search_condition 参数表示条件判断语句,
    如果返回值为 TRUE ,相应的 SQL 语句列表(statement_list)被执行;
    如果返回值为 FALSE,则 ELSE 子句的语句列表被执行。statement_list 可以包括一个或多个语句。
  2. 使用 END IF 来结束IF语句。

注意:MySQL 中的 IF( ) 函数不同于这里的 IF 语句。

CASE语句

CASE 语句也是用来进行条件判断的,它提供了多个条件进行选择,可以实现比 IF 语句更复杂的条件判断。CASE 语句的基本形式如下:
基本形式1:

CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list]...
    [ELSE statement_list]
END CASE
  1. case_value 参数表示条件判断的变量,决定了哪一个 WHEN 子句会被执行;
  2. when_value 参数表示变量的取值,如果某个 when_value 表达式与 case_value 变量的值相同,则执行对应的 THEN 关键字后的 statement_list 中的语句;
  3. statement_list 参数表示 when_value 值没有与 case_value 相同值时的执行语句。
  4. CASE 语句都要使用 END CASE 结束。

基本形式2:

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END CASE
  1. search_condition 参数表示条件判断语句;
  2. statement_list 参数表示不同条件的执行语句。

与上述语句不同的是,该语句中的 WHEN 语句将被逐个执行,直到某个 search_condition 表达式为真,则执行对应 THEN 关键字后面的 statement_list 语句。如果没有条件匹配,ELSE 子句里的语句被执行。

WHILE 语句

说明:
WHILE 语句是有条件控制的循环语句。
WHILE 语句是当满足条件时,执行循环内的语句,否则退出循环。
基本形式:

[begin_label:] WHILE search_condition DO
    statement list
END WHILE [end label]
  1. search_condition 参数表示循环执行的条件,满足该条件时循环执行;
  2. statement_list 参数表示循环的执行语句。WHILE 循环需要使用 END WHILE 来结束。

LOOP 语句

LOOP 语句可以使某些特定的语句重复执行。与 IF 和 CASE 语句相比,LOOP 只实现了一个简单的循环,并不进行条件判断。

LOOP 语句本身没有停止循环的语句,必须使用 LEAVE 语句等才能停止循环,跳出循环过程。

基本形式:

[begin_label:]LOOP
    statement_list
END LOOP [end_label]
  1. begin_label 参数和 end_label 参数分别表示循环开始和结束的标志,这两个标志必须相同,而且都可以省略;
  2. statement_list 参数表示需要循环执行的语句。

参考链接

http://c.biancheng.net/view/7853.html

posted @ 2022-05-14 21:42  kingwzun  阅读(199)  评论(0编辑  收藏  举报