phpbar.de logo

Mailinglisten-Archive

[php] OT: MySQL for / while Schleife

[php] OT: MySQL for / while Schleife

Sebastian Mendel lists at sebastianmendel.de
Fre Jul 27 10:47:20 CEST 2007


Michael Borchers schrieb:
> Aha! Ich hab es nun etwas "unschön" probiert, in dem ich die Query mit php 
> zusammensetze. Das ergibt eine
> gigantische Query bestehend aus diversen COUNT()s. Die Abfrage dauert über 
> phpMyAdmin um die 5 Sekunden.
> 
> Die Query setzte sich ungefährt wiefolgt zusammen:
> for(alle Tage t des jeweiligen Monats) {
>     for(Status s, 5 an der Zahl) {
>         SELECT
>         COUNT(foo) FROM bar WHERE DAYOFMONTH(date) = t
>         AND status = s
>         AS (individueller Name wie count_s_t)
>     }
> }

was spricht gegen:

SELECT
    DAYOFMONTH(`date`),
    `status`,
    COUNT(`foo`) AS `count`
FROM
    `bar`
WHERE
    YEARMONTH(`date`) = [yyyymm]
AND
    `status` IN ([die gewünschten Zustände, oder alle?])
GROUP BY
    DAYOFMONTH(`date`),
    `status`


eventuell noch mit ROLLUP wenn benötigt

-- 
Sebastian


php::bar PHP Wiki   -   Listenarchive