MySQL的存儲過程是一種可以執(zhí)行一系列操作并返回結(jié)果的預(yù)處理代碼塊。在存儲過程中使用return語句來返回執(zhí)行結(jié)果,可以是一個數(shù)值、一個字符串或者一個查詢結(jié)果集。
DELIMITER $$ CREATE PROCEDURE myProc(OUT result INT) BEGIN SELECT COUNT(*) INTO result FROM myTable; IF result >100 THEN SET result = 100; END IF; RETURN result; END $$ DELIMITER ;
以上代碼定義了一個名為myProc的存儲過程,它有一個OUT類型的參數(shù)result,用于返回結(jié)果集中的記錄數(shù)。在存儲過程中使用SELECT語句查詢記錄數(shù)并將結(jié)果賦值給result變量,如果結(jié)果大于100,則將結(jié)果設(shè)置為100。最后使用RETURN語句返回結(jié)果集。
在調(diào)用存儲過程時可以使用SELECT語句或者CALL語句執(zhí)行。如果使用SELECT語句,則會返回結(jié)果集。如果使用CALL語句,則需要通過OUT類型的參數(shù)獲取返回結(jié)果。
SELECT myProc(); CALL myProc(@result); SELECT @result;
以上代碼分別演示了使用SELECT語句和CALL語句調(diào)用myProc存儲過程,并獲取返回結(jié)果的方法。通過OUT類型的參數(shù)返回結(jié)果需要定義變量來接受,例如上面的@result。