from后面是表,不是简单的字符串。例如set tn='xxx'; select from tn会解析成select from 'xxx',显然不对。如果需要动态获取表,可以用拼接字符串的方式,然后执行,例如: set @tn='具体表名'; set @sql=concat('select * from ',@tn,' where 1=1'); PREPARE distSQL FROM @sql ; EXECUTE distSQL; DEALLOCATE PREPARE distSQL ;
from后面是表,不是简单的字符串。
例如set tn='xxx'; select from tn会解析成select from 'xxx',显然不对。
如果需要动态获取表,可以用拼接字符串的方式,然后执行,例如: