不确定是否可以通过查询,但请耐心等待。
我们说我有下表:(我们称之为:'表')
id | table
---------
1 | Table1
2 | Table2
3 | Table3
我想创建一个查询,从一行中的动态表名中选择数据。
类似的东西:
select * from (select table from tables where id = 1)
此查询产生的预期结果是来自"表1和#34;的所有行和列。
这样的事情可以通过MySQL完成吗?
我无法找到有关此信息,因此任何事情都可能有所帮助。
答案 0 :(得分:2)
您可以在prepared statement内创建stored procedure来完成此操作。
另外,正如@strawberry在评论中所说,这是糟糕设计的标志。即使有可能解决,你也应该重新考虑你的设计。
答案 1 :(得分:0)
您可能无法通过一个查询执行此操作,并且您需要一种服务器端语言才能分两步完成此操作,
首先通过运行此查询获取表名称
select table from tables where id = 1
然后将结果保存在vaiable中,假设它在PHP上,$tab
现在,您可以通过集成$tab
变量来运行主查询,该变量包含您查找的表的名称,这将提供一个清晰的MySQL查询来执行
select * from $tab