MySQL的if语句 - 极悦
首页 课程 师资 教程 报名

MySQL的if语句

  • 2022-12-05 10:09:25
  • 1555次 极悦

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)

 

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交