使用字符串调用存储过程以在查询中使用

时间:2014-08-26 11:24:57

标签: mysql stored-procedures phpmyadmin

我有一个存储过程,我需要传递一个字符串以在查询中使用。

存储过程示例:

BEGIN
SET @query = query;
SELECT * FROM test WHERE @query
END

我想用字符串调用它:

CALL proceduretet('activity_id = 1 OR activity_id = 2')

查询每次都可以不同,有时会有1个activity_id,有时会有4个或更多。

我试图将其作为varchar和text传递,但它不会起作用。

那么有没有办法将字符串传递给存储过程并在查询中使用它?

此致,Andreas

1 个答案:

答案 0 :(得分:2)

代码如下:

BEGIN
    SET @query = query;
    SET @sql = concat('SELECT * FROM TEST WHERE ', @query);
    PREPARE stmt from @sql;
    EXECUTE stmt;
END;