我有一个存储过程,我需要在其中传递一个字符串以在查询中使用。
存储过程示例:
BEGIN
SET @query = query;
SELECT * FROM test WHERE @query
END
我想如何用字符串调用它:
CALL proceduretet('activity_id = 1 OR activity_id = 2')
每次查询可以不同,有时会有1个activity_id,有时有4个或更多。
我试图将它作为 varchar 和文本传递,但它不起作用。
那么有没有办法将字符串传递给存储过程并在查询中使用它呢?
问候,安德烈亚斯
最佳答案
代码如下:
BEGIN
SET @query = query;
SET @sql = concat('SELECT * FROM TEST WHERE ', @query);
PREPARE stmt from @sql;
EXECUTE stmt;
END;
关于mysql - 使用要在查询中使用的字符串调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25504674/