前言
在写触发器或者写查询语句的时候,我们可能会遇到动态表的情况。比如,我们根据日期建立了31张表,如果我们需要根据系统时间查询对应日期的表,要怎么做?
实现
1.获取当天日期
SELECT DATE_FORMAT(NOW(), '%d') AS today
可以看到我们可以通过DATE_FORMAT(NOW(), '%d')来得到当天日期。
2.实现代码
通过CONCAT 拼接SQL语句,通过PREPARE预编译语句,通过EXECUTE执行语句,通过DEALLOCATE删除预编译资源。
SET @historyTable = CONCAT('data_',DATE_FORMAT(NOW(), '%d'));
SET @aa = CONCAT('SELECT * FROM ',@historyTable);
PREPARE stmt FROM @aa;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
在数据库操作中,有时我们需要根据日期动态查询不同的表。本文介绍如何在MySQL中利用当前日期来构建和执行SQL查询。首先,通过DATE_FORMAT获取当天日期,然后使用CONCAT拼接SQL语句,配合PREPARE、EXECUTE和DEALLOCATE预编译SQL,实现动态查询对应日期的数据表。

被折叠的 条评论
为什么被折叠?



