动态选择表值

时间:2017-01-19 19:05:41

标签: mysql

不确定是否可以通过查询,但请耐心等待。

我们说我有下表:(我们称之为:'表')

id | table
---------
1  | Table1
2  | Table2
3  | Table3

我想创建一个查询,从一行中的动态表名中选择数据。

类似的东西:

select * from (select table from tables where id = 1)

此查询产生的预期结果是来自"表1和#34;的所有行和列。

这样的事情可以通过MySQL完成吗?

我无法找到有关此信息,因此任何事情都可能有所帮助。

2 个答案:

答案 0 :(得分:2)

您可以在prepared statement内创建stored procedure来完成此操作。

另外,正如@strawberry在评论中所说,这是糟糕设计的标志。即使有可能解决,你也应该重新考虑你的设计。

答案 1 :(得分:0)

您可能无法通过一个查询执行此操作,并且您需要一种服务器端语言才能分两步完成此操作,

首先通过运行此查询获取表名称

select table from tables where id = 1

然后将结果保存在vaiable中,假设它在PHP上,$tab 现在,您可以通过集成$tab变量来运行主查询,该变量包含您查找的表的名称,这将提供一个清晰的MySQL查询来执行

select * from $tab