更新时间: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是语句的条件。
以下查询演示了 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)
以下查询演示了如何在函数中使用 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)
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习