MySQL 存儲過程是一個預編譯的 SQL 代碼塊,以便稍后重用。條件判斷是 MySQL 存儲過程中很常見的語句。本文將介紹 MySQL 存儲過程中的條件判斷語句。
MySQL 存儲過程中使用 IF 語句進行條件判斷。IF 語句的語法如下:
IF boolean_expression THEN statement_list ELSEIF boolean_expression THEN statement_list ELSE statement_list END IF
其中,boolean_expression 是一個布爾表達式,可以是任何返回 TRUE 或 FALSE 值的表達式。如果 boolean_expression 為 TRUE,則執行 THEN 子句中的語句列表。如果 boolean_expression 不為 TRUE,那么 MYSQL 會評估 ELSEIF 子句列表,如果找到 TRUE 條件,則執行該列表。如果沒有找到 TRUE 條件,則執行 ELSE 子句列表。END IF 子句表示 IF 語句的結束。
下面給出一個例子,如果部門編號為 100,則將其員工的工資增加 10%。否則,將工資增加 5%。
DELIMITER // CREATE PROCEDURE update_salary() BEGIN DECLARE d_no INT; DECLARE d_salary INT; DECLARE c_salary INT; SELECT dept_no, salary INTO d_no, d_salary FROM employees WHERE emp_no = 10001; IF d_no = 100 THEN SET c_salary = d_salary * 1.1; ELSE SET c_salary = d_salary * 1.05; END IF; UPDATE employees SET salary = c_salary WHERE emp_no = 10001; END // DELIMITER ;
在以上示例中,首先聲明了變量 d_no、d_salary 和 c_salary,將 dept_no 和 salary 的值分別賦給這兩個變量。然后,使用 IF 語句判斷部門編號是否為 100,如果是,則將 c_salary 設置為 d_salary 的 1.1 倍,否則將 c_salary 設置為 d_salary 的 1.05 倍。最后,使用 UPDATE 語句將更新后的工資值設置到 employees 表中。
MySQL 存儲過程中的條件判斷語句非常適合處理業務邏輯中的條件選擇,可以有效地提高代碼的可讀性和維護性。