如何把表名作为变量在选择查询不使用mysql中的准备语句?

  • 本文关键字:mysql 语句 查询 选择 变量 mysql
  • 更新时间 :
  • 英文 :


我的代码正在使用这个准备语句,但我不想使用准备语句…请给我另一个解决方案

set @sql1 = concat('select *from ', @table_names,'');
PREPARE stmt1 from @sql1;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;

Thanks to all

标识符(例如表名)必须在查询解析之前在查询中固定。

不能用作表名:

一个变量
  • 参数
  • 字符串表达式
  • 子查询的结果
  • 等。

您可以只做您正在做的事情-将新查询写成字符串,并将动态部分包含为变量或表达式。然后你有一个字符串,你可以准备& &;执行该字符串。解析器无法知道该字符串的哪些部分最初是变量或表达式。

最新更新