Pitäisi tehdä tilasto sovellus joka näyttää monesta eri IP-osoitteesta on vierailtu sivulla yli xxx kertaa.
SELECT id FROM logi GROUP BY ip_osoite HAVING COUNT(id) > xxx
Näyttää ne id:t josta vierailu on tapatunut yli xxx kertaa, mutta tarvitsen vain lukumäärän, en muuta. Kanta on suurehko (likimain miljoona riviä), joten onko mitään muuta keinoa kuin tehdä toi kysely ja mysql_num_rows ottaa selville monta riviä tuotti?
Tuolla tavallahan mysliltä siirretään PHP:lle turhaa dataa aikasta paljon.
Kielinä mysli ja PHP, uusimmat molemmista, joten alikyselyt toimii.
SELECT id FROM logi GROUP BY ip_osoite HAVING COUNT(id) > xxx
Näyttää ne id:t josta vierailu on tapatunut yli xxx kertaa, mutta tarvitsen vain lukumäärän, en muuta. Kanta on suurehko (likimain miljoona riviä), joten onko mitään muuta keinoa kuin tehdä toi kysely ja mysql_num_rows ottaa selville monta riviä tuotti?
Tuolla tavallahan mysliltä siirretään PHP:lle turhaa dataa aikasta paljon.
Kielinä mysli ja PHP, uusimmat molemmista, joten alikyselyt toimii.
Vastaukset 4
Vanhimmat
Eikös tuo hoidu yhdellä lisä countilla eli:
SELECT count(1) FROM logi GROUP BY ip_osoite HAVING COUNT(id) > xxx
Ei toimi halutulla tavalla, koska tossa on GROUP BY määre joka sotkee.
Kyselysi tulostaa
400
350
550
Tarvitsisin vastaukseksi vain 3
>Tarvitsisin vastaukseksi vain 3
Tuohan on komennon jälkeen systeemimuuttujassa @@rowcount.
Ilmeisesti PHP käyttää tuota?
Joten taidan käyttää tuota PHP:n omaa functiota, kun näyttäisi toimivan ihan kohtuudella suurella rivimäärälläkin.