我有一个问题:
insert into fookoo_business
select stat_date, sum(spend), sum(revenue)
from hooloo_business;
我想为从“2017-01-20”到昨天的每个日期运行(这意味着如果我们在 01/04/2018 时查询将运行 434 次),分别为每个日期运行 (在一个循环中)。
我如何在 Mysql 中创建一个循环来为我做这件事?
我试过:
为查询创建程序select @stat_date, sum(spend), sum(revenue)
我叫“查询”
然后:
CREATE PROCEDURE loop_procedure()
BEGIN
SET @stat_date='2018-03-20';
CALL 'query';
REPEAT
SET @stat_date = @stat_date + INTERVAL 1 DAY;
UNTIL @stat_date = CURDATE() END REPEAT;
END
最佳答案
最终我在存储过程中使用了以下逻辑来获取数据:
PROCEDURE `x_monitoring_loop`()
BEGIN
DECLARE i INT;
DECLARE len INT;
SET len = 434;
SET i = 0;
WHILE (i < len) DO
SET @stat_date= CURDATE()-INTERVAL 1 DAY;
SET @stat_date= @stat_date- INTERVAL i DAY;
Insert query;
SET i = i +1;
END WHILE;
这样查询每天运行 434 次,从当前日期开始 - 1 天。
关于mysql - 创建一个基于日期的循环 Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49598972/