Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Summa päivämäärittäin SQL-kysely

Juice [27.02.2006 19:29:55]

#

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.

Olga [27.02.2006 21:43:49]

#

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.

thelineva [28.02.2006 18:08:45]

#

SELECT COUNT(*)
FROM x
WHERE DATE(aika) BETWEEN DATE(NOW()) AND
  DATE(NOW() + INTERVAL 2 DAY)
GROUP BY DATE(aika)

Juice [28.02.2006 18:43:30]

#

Joo, sain ratkemaan jo noilla Olgan vihjeillä. Kiitoksia!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta