2016-05-20 34 views
1

我很新到mysql的腳本,我想通過增加00:00:00時間30分鐘執行該查詢。需要循環MySQL查詢通過改變參數

像這樣

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來實現這一目標,並希望得到獨立的結果集爲每個查詢

回答

1

,那麼你需要在使用存儲過程來運行你的查詢。在MySQL

讀取循環http://www.mysqltutorial.org/stored-procedures-loop.aspx

或者有沒有多個查詢,那麼你可以使用工會以及

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 ; 
+1

感謝您幫助我,並抱歉這麼晚纔回復 – Vinod