MySQL是一種常用的關系型數據庫管理系統,支持存儲過程、觸發器等高級功能。在MySQL存儲過程中,if語句能夠實現條件判斷,在條件成立時執行指定語句,否則執行不同的語句。
DELIMITER // CREATE PROCEDURE demo_procedure(IN id INT) BEGIN DECLARE name VARCHAR(50); SELECT user_name INTO name FROM user WHERE user_id = id; IF name = 'Tom' THEN SELECT * FROM user WHERE user_id = id; ELSEIF name = 'Jerry' THEN SELECT * FROM user WHERE user_id = id AND user_age >18; ELSE SELECT 'No match result.'; END IF; END // DELIMITER ;
以上代碼演示了如何創建一個名為“demo_procedure”的存儲過程,接受一個參數id,查詢user表中user_id等于id的用戶記錄,并根據用戶名進行條件判斷。若用戶名為Tom,則查詢所有信息;若用戶名為Jerry,則查詢年齡大于18的信息;否則查詢“無匹配結果”。
需要注意的是,在MySQL存儲過程中,if語句中的每個條件均需緊貼著THEN或ELSEIF關鍵字寫在一行中,而ELSE關鍵字需換行寫在單獨的一行中。如下所示:
IF condition1 THEN statement1; ELSEIF condition2 THEN statement2; ELSEIF condition3 THEN statement3; ... ELSE statement4; END IF;
最后,我們還可以將以上存儲過程與條件查詢操作結合起來,以查詢滿足指定條件的用戶記錄。例如:
CALL demo_procedure(2);
代碼將返回user_id為2且用戶名為Jerry的信息。