MySQL的if语句 - 极悦
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 MySQL的if语句

MySQL的if语句

更新时间:2022-12-05 10:09:25 来源:极悦 浏览1379次

IF 是一个复合 MySQL 语句,它有一个或一组语句和一个条件。如果指定条件的值为 TRUE,则执行给定的语句。每个语句可能有多个 SQL 语句之一。IF 中不允许空语句。

句法

以下是 MySQL 中 IF 语句的语法

IF search_condition THEN statement_list
   [ELSEIF search_condition THEN statement_list] ...
   [ELSE statement_list]
END IF

其中,statement_list是要执行的单个或一组语句。而search_condition是语句的条件。

示例 1

以下查询演示了 IF 语句在过程中的用法

mysql> Delimiter //
mysql> CREATE procedure loopDemo()
   label:BEGIN
      DECLARE val INT ;
      DECLARE result VARCHAR(255);
      SET val =1;
      SET result = '';
         loop_label: LOOP
         IF val > 10 THEN
            LEAVE loop_label;
         END IF;
         SET result = CONCAT(result,val,',');
         SET val = val + 1;
         ITERATE loop_label;
      END LOOP;
      SELECT result;
   END//

您可以按如下方式调用上述过程

mysql> call loopDemo;//
+-----------------------+
| result                |
+-----------------------+
| 1,2,3,4,5,6,7,8,9,10, |
+-----------------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.07 sec)

示例 2

以下查询演示了如何在函数中使用 IF 语句。

DELIMITER //
CREATE FUNCTION Sample (bonus INT)
   RETURNS INT
   BEGIN
      DECLARE income INT;
      SET income = 0;
      myLabel: LOOP
         SET income = income + bonus;
         IF income < 10000 THEN
            ITERATE myLabel;
         END IF;
         LEAVE myLabel;
      END LOOP myLabel;
   RETURN income;
END; //
Query OK, 0 rows affected (0.41 sec)
mysql> DELIMITER ;

您可以调用上面创建的函数,如下所示

mysql> SELECT Sample(1000);
+--------------+
| Sample(1000) |
+--------------+
| 10000        |
+--------------+
1 row in set (0.15 sec)

 

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>