2016-05-20 8 views
1

Ich bin sehr neu zu MySQL-Skripts, ich möchte diese Abfrage durch Erhöhung 00:00:00 Zeit zu 30 Minuten ausführen.Müssen eine MySql-Abfrage Schleife durch Ändern eines Parameters

so etwas wie dieses

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; 

Könnt ihr mir bitte helfen?

Antwort

1

wenn Sie wan dies in MySQL zu erreichen und eine separate Suchresultates für jede Abfrage erhalten möchten dann müssen Sie Ihre Abfrage in Schleife unter Verwendung gespeicherte Prozedur auszuführen.

Leseschleife in mysql http://www.mysqltutorial.org/stored-procedures-loop.aspx

oder es sind nicht mehrere Anfragen können Sie Vereinigung verwenden auch

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

Dank für das mir zu helfen, und sorry für die späte Antwort – Vinod

Verwandte Themen