更新時間:2022-12-05 10:09:25 來源:動力節(jié)點 瀏覽1876次
IF 是一個復合 MySQL 語句,它有一個或一組語句和一個條件。如果指定條件的值為 TRUE,則執(zhí)行給定的語句。每個語句可能有多個 SQL 語句之一。IF 中不允許空語句。
以下是 MySQL 中 IF 語句的語法
IF search_condition THEN statement_list
[ELSEIF search_condition THEN statement_list] ...
[ELSE statement_list]
END IF
其中,statement_list是要執(zhí)行的單個或一組語句。而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)
以下查詢演示了如何在函數(shù)中使用 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 ;
您可以調用上面創(chuàng)建的函數(shù),如下所示
mysql> SELECT Sample(1000);
+--------------+
| Sample(1000) |
+--------------+
| 10000 |
+--------------+
1 row in set (0.15 sec)