我的代码正在使用这个准备语句,但我不想使用准备语句…请给我另一个解决方案
set @sql1 = concat('select *from ', @table_names,'');
PREPARE stmt1 from @sql1;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
Thanks to all
标识符(例如表名)必须在查询解析之前在查询中固定。
不能用作表名:
一个变量- 参数字符串表达式
- 子查询的结果
- 等。
您可以只做您正在做的事情-将新查询写成字符串,并将动态部分包含为变量或表达式。然后你有一个字符串,你可以准备& &;执行该字符串。解析器无法知道该字符串的哪些部分最初是变量或表达式。