mysql - 使用要在查询中使用的字符串调用存储过程

标签 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 和文本传递,但它不起作用。

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

问候,安德烈亚斯

最佳答案

代码如下:

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/

相关文章:

mysql - 将表主键 ID 更改为按创建日期顺序排列

PHP MYSQL 使用 order by 子句从表中查找行号/排名

php - 如何设置 laravel php.ini 位置

php - 如何在PHP中使用不同数据库连接的单个查询从一个数据库中进行选择并插入到另一个数据库中

mysql - 如何查看阻止我创建存储过程的错误?

nhibernate - 使用 NHibernate 删除表中所有行的最佳方法?

php - 使用 php 更新/删除表单数据以使用 phpmyadmin 更新数据库

MySQL在线导入导出

MySQL 分组两次

c# - 通过 ODBC 执行参数化 SQL 存储过程