【发布时间】:2017-01-05 12:15:22
【问题描述】:
我正在尝试从查询返回的 MySQL 表名中进行选择。表名是 table_prefix_date(例如 table_prefix_20160801)。
要获取所有日期和相应的表名,我会这样做:
select concat('db_name.table_prefix_',a.Date)
from (
select date_format(curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY,'%Y%m%d') as Date
from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c
) a
where date_format(Date,'%Y-%m-%d') between '2016-08-01' and '2016-08-20'
order by 1 asc;
所有表都有相同的列和索引。只是做select * from (queryabove); 失败。
谁能给我一些工作示例,说明如何从上述查询返回的表中检索数据?
【问题讨论】:
标签: mysql select dynamic-sql