Mulla on taulussa x sarake aika, joka on siis datetime-tyyppinen. Kuvitellaan, että ne ovat vaikka televisio-ohjelmien alkamisaikoja.
Kuinka saan laskettua tämän päivän, huomisen ja ylihuomisen tv-ohjelmat jokaiselle päivälle erikseen (ei siis kaikkien kolmen päivän yhteensä) tekemättä kolmea eri kyselyä?
Tällä hetkellä kysely on tällainen ja se siis osaa hakea vain tämän päivän tiedot:
<?php $kysely = 'SELECT COUNT(nimi) FROM x WHERE aika=\''.date("d.n.y").'\''; $haku = mysql_query($kysely); $rivi = mysql_fetch_row($haku); ?>
Tarkoitushan siis olisi, että tämän päivän ohjelmien määrä löytyy kohdasta $rivi[0], huomisen $rivi[1] ja ylihuomisen $rivi[2].
Optimoidut kyselyt ovat omantunnonasia, siksi pitää kysyä teiltä neuvoa ;)
Toivottavasti tämä selitys oli mahdollisimman yksinkertainen.
Itse lähtisin hahmottelemaan seuraavaan tyyliin:
SELECT COUNT(*) AS lkm FROM taulu WHERE aika IN (aika1, aika2, aika3) GROUP BY aika
Tuossa nuo eri ajat niitä haluttuja päivämääriä. Eli jos ajat ovat minuuttien ja tuntien tarkkuudella, tulee käyttää apuna MySQL:n aikafunktioita.
SELECT COUNT(*) FROM x WHERE DATE(aika) BETWEEN DATE(NOW()) AND DATE(NOW() + INTERVAL 2 DAY) GROUP BY DATE(aika)
Joo, sain ratkemaan jo noilla Olgan vihjeillä. Kiitoksia!
Aihe on jo aika vanha, joten et voi enää vastata siihen.