2014-02-10 28 views
0

我新的MySQL和我有一個要求,那就是:MySQL的存儲過程匿名

我傳遞5個參數的步驟,並以5個參數值,我建立一個動態查詢。在那之後,我用mysql準備語句轉換這個動態查詢到準備好的語句,整理準備我執行這樣

EX準備語句語句後:execute stmt using @param1,@param2,@param3,@param4,@param5

現在的問題是

如何傳遞這五個參數(@param1,@param2,@param3,@param4,@param5)動態?

回答

1

傳遞值作爲參數的程序,然後分配給用戶變量語句的執行:

CREATE PROCEDURE foo(p1 INT, p2 INT, p3 INT, p4 INT, p5 INT) BEGIN 
    PREPARE stmt FROM 'SELECT ?, ?, ?, ?, ?'; 
    SET @param1 := p1, @param2 := p2, @param3 := p3, @param4 := p4, @param5 := p5; 
    EXECUTE stmt USING @param1, @param2, @param3, @param4, @param5; 
    DEALLOCATE PREPARE stmt; 
END