MySQL 存儲過程 if語句
阿新 • • 發佈:2019-02-25
表達 調用程序 red latin true 演示 表達式計算 存儲 mysql-
MySQL 存儲過程 if語句
MySQL IF
語句允許您根據表達式的某個條件或值結果來執行一組SQL語句。 要在MySQL中形成一個表達式,可以結合文字,變量,運算符,甚至函數來組合。表達式可以返回TRUE
,FALSE
或NULL
,這三個值之一。
MySQL IF語句語法
下面說明了IF
語句的語法:
IF expression THEN statements; END IF;
如果表達式(expression
)計算結果為TRUE
,那麽將執行statements
語句,否則控制流將傳遞到END IF
之後的下一個語句。
以下流程圖演示了IF
語句的執行過程:
MySQL IF ELSE語句
如果表達式計算結果為FALSE
時執行語句,請使用IF ELSE
語句,如下所示:
IF expression THEN statements; ELSE else-statements; END IF;
以下流程圖說明了IF ELSE
語句的執行過程:
MySQL IF ELSEIF ELSE語句
如果要基於多個表達式有條件地執行語句,則使用IF ELSEIF ELSE
語句如下:
IF expression THEN statements; ELSEIF elseif-expression THEN elseif-statements; ...ELSE else-statements; END IF;
如果表達式(expression
)求值為TRUE
,則IF
分支中的語句(statements
)將執行;如果表達式求值為FALSE
,則如果elseif_expression
的計算結果為TRUE
,MySQL將執行elseif-expression
,否則執行ELSE
分支中的else-statements
語句。具體流程如下
MySQL IF語句示例
以下示例說明如何使用IF ESLEIF ELSE
語句,GetCustomerLevel()
存儲過程接受客戶編號和客戶級別的兩個參數。
首先,它從customers
表中獲得信用額度
然後,根據信用額度,它決定客戶級別:PLATINUM
, GOLD
和 SILVER
。
參數p_customerlevel
存儲客戶的級別,並由調用程序使用。
USE yiibaidb; DELIMITER $$ CREATE PROCEDURE GetCustomerLevel( in p_customerNumber int(11), out p_customerLevel varchar(10)) BEGIN DECLARE creditlim double; SELECT creditlimit INTO creditlim FROM customers WHERE customerNumber = p_customerNumber; IF creditlim > 50000 THEN SET p_customerLevel = ‘PLATINUM‘; ELSEIF (creditlim <= 50000 AND creditlim >= 10000) THEN SET p_customerLevel = ‘GOLD‘; ELSEIF creditlim < 10000 THEN SET p_customerLevel = ‘SILVER‘; END IF; END$$
以下流程圖演示了確定客戶級別的邏輯
MySQL 存儲過程 if語句