MySQL存储过程匿名

时间:2014-02-10 18:01:14

标签: mysql stored-procedures

我是MySql的新手,我的要求是:

我将5个参数传递给一个过程,并基于5个参数值构建动态查询。之后我将这个动态查询转换为使用mysql prepare语句准备好的语句,在完成prepare语句后我正在执行这样的prepare语句

EX:execute stmt using @param1,@param2,@param3,@param4,@param5

现在我的问题是

如何动态传递这五个参数(@param1,@param2,@param3,@param4,@param5)

1 个答案:

答案 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