首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

求教简单sql查询动态表名,该怎么解决

2012-03-02 
求教简单sql查询动态表名使用的是mysql有这么系列表a_1004a_1005a_1006...1004是10年4月这个月是4月,怎么

求教简单sql查询动态表名
使用的是mysql


有这么系列表
a_1004
a_1005
a_1006
...
1004是10年4月

这个月是4月,怎么写一条sql语句查询a_1004表中的,等到5月,可以查询a_1005表

select concat("a_",(select substring(DATE_FORMAT(Date_add(now(), interval 0 day),'%Y%m'),3,4)));

得到的是 a_1004

怎么样可以查询 这个字符串为表名的表?

谢谢,by phoenix


[解决办法]
set @aa=concat('select * from ',"a_",(select substring(DATE_FORMAT(Date_add(now(), interval 0 day),'%Y%m'),3,4)));
prepare qq from @aa;
execute qq;
[解决办法]
MySQL 中SQL语句无法实现动态的使用表名做变量。只能通过PREPARE来实现动态SQL语句。

SQL code
SET @sql = concat(' select * from a_',DATE_FORMAT(now(),'%y%m'));PREPARE stmt FROM @sql;EXECUTE stmt1 ;DEALLOCATE PREPARE stmt1; 

热点排行