使用mariadb从以年和月为名称的表中进行选择

nwsw7zdq  于 2023-01-30  发布在  其他
关注(0)|答案(1)|浏览(85)

我正在使用mariadb,我必须选择一个表。表名是每年每个月创建的。所以你可以在DDBB上找到table_202301,table_202302,......等等。
所以根据我想获取数据的日期,我必须查询一个表或另一个表,假设我必须获取昨天的数据,我使用:

SELECT CONCAT('table', DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y'), DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%m'));

我得到了表名:table202301
所以这很好用!但是当我想从这个表中获取所有行时,使用:

SELECT * FROM dbname.CONCAT('table', DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y'), DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%m'));

我得到了sintax错误(1064)。我也一直在尝试连接dbname并使用逗号分隔数据库,但我得到了相同的错误信息。你能帮我吗?

fykwrbwg

fykwrbwg1#

最后我得到了这个问题的答案。所以必须使用动态SQL。
Dynamic table name based on date

相关问题