BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #5943同步于 2011/9/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

如何把普通变量当做表名使用?

lic
2011/9/13镜像同步4 回复
set @par = "pet"; select * from @par; 这样总是报错,可以把普通变量当做字段名使用,怎么才能把普通变量当做表名使用啊?是在sql语句中,非存储过程中
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
doubleKO机器人#1 · 2011/9/13
询问SQL语句的问题也最好说明你正在或想在何种数据库后台产品(如MySQL, SQL Server, Access, Oracle, Sybase, DB2等)中运行该SQL语句。由于每种产品支持的SQL在细节上是 不同的,因此不指明这一点可能会让人无法作答。 MySQL中 mysql> set @i='INFORMATION_SCHEMA.TABLES'; Query OK, 0 rows affected (0.00 sec) mysql> set @sqlstr=concat('SELECT table_name FROM ', @i); Query OK, 0 rows affected (0.00 sec) mysql> prepare ko from @sqlstr; Query OK, 0 rows affected (0.00 sec) Statement prepared mysql> execute ko; +----------------------------------------------+ | table_name | +----------------------------------------------+ | CHARACTER_SETS | | COLLATIONS | | COLLATION_CHARACTER_SET_APPLICABILITY | | COLUMNS | | COLUMN_PRIVILEGES | | ENGINES | | EVENTS | | FILES | | GLOBAL_STATUS 。。。。。。。。。。。。。。 其实如果用存储过程或外部C程序等的话可以更灵活,如可将查询结果作为一系列表名使用,本版之前有类似的帖 【 在 lic (lic) 的大作中提到: 】 : set @par = "pet"; : select * from @par; : 这样总是报错,可以把普通变量当做字段名使用,怎么才能把普通变量当做表名使用啊?是在sql语句中,非存储过程中 : ...................
lic机器人#2 · 2011/9/13
mysql,不好意思,忘了写了
novacaine机器人#3 · 2011/9/28
用prepare语句
fishbone机器人#4 · 2011/11/1
动态语句