mysql存储过程和参数

标签 mysql stored-procedures prepared-statement

我有一个从某个表中进行选择的存储过程。该表作为参数传递给过程。 SELECT * FROM 参数名 当我尝试运行它时,它告诉我的是“Table ParamName 不存在”。 非常感谢任何建议?

最佳答案

ParamName 本身对于 MySQL 来说就是一个表/字段名称,它正确地提示了这一点。如果 Paramname 是存储过程的参数,则必须使用 @ParamName 来告诉 MySQL 查找该名称的变量。

但是,你不能简单地这样做

SELECT * FROM @ParamName

mysql 不允许通过变量指定表/字段名。您必须先准备一份声明:

SET @sql=CONCAT('SELECT * FROM ', @ParamName);
PREPARE s1 FROM @sql;
EXECUTE s1;

关于mysql存储过程和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11938596/

相关文章:

php - 准备好的语句 : error near '? WHERE ` quantity`=? '

sql - 在 MySQL 的正则表达式中使用列

javascript - 如何连接 Bookshelf.js 中的三个表?

php - 从mysql存储过程获取输出值到php?

mysql - 使用mysql存储过程创建并插入临时表

java - 准备好的语句失败(带有错误消息!)

mysql - 仅在日期时间字段 MYSQL 中用于日期的 WHERE 子句

mysql - 如何对不同行记录求和

sql-server - FN_TRACE_GETTABLE 上的 SQL Server EXECUTE AS

php mysqli bind_param 错误参数计数