MySQL預存程序是一種預先編寫好的SQL語句集合,該集合可以作為一個單元被呼叫。 MySQL預存程序具有許多優點,例如可以提高資料庫效能、減少網路流量、統一和簡化業務邏輯以及提高安全性等。但是,在使用MySQL預存程序的過程中,有時我們還需要傳回結果集,本文將深入探討如何使用MySQL預存程序傳回結果集。
建立一個MySQL預存程序非常簡單,可以透過CREATE PROCEDURE語句來完成。以下是一個簡單的例子,該預存程序接受兩個整數參數,並將它們相加後返回結果:
DELIMITER //
CREATE PROCEDURE add_numbers(IN num1 INT, IN num2 INT, OUT result INT)
BEGIN
SET result = num1 num2;
END //
DELIMITER ;
#呼叫存儲過程也很簡單,只需要使用CALL語句。下面是一個例子,該範例呼叫了上面建立的預存程序,並將結果印到控制台上:
SET @a = 1;
SET @b = 2;
CALL add_numbers (@a, @b, @result);
SELECT @result;
如果需要在MySQL儲存過程中傳回一個結果集,那麼可以使用CURSOR。 CURSOR可以用來遍歷一個結果集,並將結果儲存到一個變數中。以下是一個例子,該範例傳回了一個產品清單的結果集:
DELIMITER //
CREATE PROCEDURE get_product_list()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE id INT;
DECLARE name VARCHAR(255);
DECLARE cur CURSOR FOR SELECT id, name FROM products;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET CREATE TABLE IF NOT EXISTS temp_product_list(id INT, name VARCHAR(255));
OPEN cur;
read_loop: LOOP
rrreLOf LOOP; CLOSE cur; SELECT * FROM temp_product_list;END //
DELIMITER ;
上述程式碼中,我們先建立了一個CURSOR物件,並指定了要查詢的產品清單。在遍歷結果集時,我們將結果逐一插入temp_product_list表中。最後,我們回傳查詢結果。
處理傳回結果
以上是mysql預存程序 傳回的詳細內容。更多資訊請關注PHP中文網其他相關文章!