2016-05-21 10 views
0

ich habe diese Anfrage:Kann ich eine Auswahl in mysql loopen?

select count(*) 
from Table o 
where 
(o.time between timevariable1 and addtime(timevariable1,timeincrement) 
and o.Date="whatever date"; 

Ich bin eine Schleife diese Abfrage 10 mal versucht, Whit die timevariable1 Erhöhen des timeincrement.

Ich möchte die Anzahl (*) der Zeilen abrufen, die eine Zeit zwischen einem Bereich haben. aber ich habe 10 verschiedene Bereiche von Zeiten.

0.00 bis 0.10 10 Reihen

0.10 bis 0.20 4 Reihen

.... usw.

der erste Wert von timevariable1 und Wert des Zeitinkrements wird in meinem Code berechnet.

kann ich es mit einer gespeicherten Prozedur in mysql tun?

+0

Datenabtastwert und die gewünschten Ergebnisse helfen würde erklären, was Sie zu tun versuchen. –

Antwort

0

Sie können dies wie diese in einer Abfrage tun

select sum(time between timevariable1 and addtime(timevariable1,timeincrement)) as t1count, 
     sum(time between timevariable2 and addtime(timevariable2,timeincrement)) as t2count 
from Table 
where Date='whatever date' 
0

Sie eine abgeleitete Tabelle verwenden können, eine Liste von Werten zu erstellen und dann left join verwenden. Etwas wie dieses:

select tv.val1, count(*) 
from (select val1 as timevariable union all 
     select val2 . . . 
    ) tv left join 
    Table o 
    on o.time between tv.timevariable and addtime(tv.timevariable, timeincrement) and 
     o.Date = 'whatever date;