我是MySql的新手,我的要求是:
我将5个参数传递给一个过程,并基于5个参数值构建动态查询。之后我将这个动态查询转换为使用mysql prepare语句准备好的语句,在完成prepare语句后我正在执行这样的prepare语句
EX:execute stmt using @param1,@param2,@param3,@param4,@param5
现在我的问题是
如何动态传递这五个参数(@param1,@param2,@param3,@param4,@param5)
?
答案 0 :(得分: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