我有一个存储过程,我需要传递一个字符串以在查询中使用。
存储过程示例:
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
答案 0 :(得分:2)
代码如下:
BEGIN
SET @query = query;
SET @sql = concat('SELECT * FROM TEST WHERE ', @query);
PREPARE stmt from @sql;
EXECUTE stmt;
END;