mysql - 需要通过更改参数来循环 MySql 查询

标签 mysql loops

我是 mysql 脚本的新手,我想通过将 00:00:00 时间增加到 30 分钟来执行此查询。

像这样的

Select count(*) 
FROM ctrdb.CTR_LINE_ITEM 
where LOAD_DATE BETWEEN '2016-05-18 00:00:00' AND '2016-05-18 00:30:00' 
order by load_date;

Select count(*) 
FROM ctrdb.CTR_LINE_ITEM 
where LOAD_DATE BETWEEN '2016-05-18 00:30:00' AND '2016-05-18 00:60:00' 
order by load_date;

你们能帮帮我吗?

最佳答案

如果你想在 mysql 中实现这个并且想为每个查询获得单独的结果集 那么您需要使用存储过程循环中运行您的查询。

在 mysql 中读取循环 http://www.mysqltutorial.org/stored-procedures-loop.aspx

或者没有多个查询那么你也可以使用union

    DELIMITER $$
CREATE PROCEDURE getdata()
 BEGIN
 DECLARE x  INT;

 DECLARE maximum INT; # you can use date as well
 DECLARE startdate  DATE;
 DECLARE enddate  DATE;

 SET x =0;

 SET maximum = 10;
 SET startdate =   '2016-05-18 00:00:00';


 loop_label:  LOOP
    IF  x > 10 THEN 
        LEAVE  loop_label;
    END  IF;
    SET  x = x + 1;
    SET enddate =   startdate   + INTERVAL 30 MINUTE;
    Select count(*) ,startdate
    FROM ctrdb.CTR_LINE_ITEM 
    where LOAD_DATE BETWEEN '2016-05-18 00:00:00' AND '2016-05-18 00:30:00' 
    order by load_date;
    SET startdate =   startdate   + INTERVAL 30 MINUTE;

END LOOP; 
END $$

DELIMITER ;

关于mysql - 需要通过更改参数来循环 MySql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37339497/

相关文章:

mysql - 在 SQL 中创建一个触发器,从一个表中读取数据,并将新数据插入到另一个表中

c - 使用循环平铺从矩阵中提取子矩阵

python - 使用 python ping 多个远程服务器的故障排除脚本

javascript - 如何向子数组添加新属性?

mysql - 如何优化具有多个不等式的mysql查询?

PHP,限制用户输入错误值x次

php - 将 setTimeout 与 AJAX 一起使用的替代方案?

mysql - 如何在mysql上删除多行时使用索引

c - Do While 循环总是在第一次循环后退出

Python:如何拥有不从 0 开始的嵌套 for 循环索引?