PDA

Bekijk Volledige Versie : [PHP/mySQL] COUNT van meerder kolommen



Arie
30/01/03, 13:35
Ik heb een mySQL-tabel waarin de kolommen(k) een waarde 0, 1 of 2 kunnen
krijgen.

vb.
id | k1 | k2 | k3 | k4
1 | 2 | 2 | 0 | 2
2 | 1 | 0 | 1 | 1
3 | 2 | 1 | 2 | 1
4 | 2 | 2 | 1 | 1

Om te tellen hoeveel rijen voor iedere kolom de waarde 1 hebben gebruik
ik nu:

<?php
for($i=3;$i<=4;$i++){
$query="SELECT COUNT(k$i) FROM tabel WHERE k$i = 1";
...
}
?>

Ik wil graag het bovenste tot 1 query terugbrengen, zodat het resultaat
er als volgt uit ziet:

COUNT(k1) | COUNT(k2) | COUNT(k3) | COUNT(k4)
1 | 1 | 2 | 3

Mijn vraag is dan ook: Hoe ziet zo'n query eruit?
En als het niet kan hoe dien ik de antwoordmogelijkheden 0, 1 en 2 dan te
coderen om wel alle optellingen in 1 query te kunnen weergeven of
hieruit te kunnen herleiden?

groeten,

Arie

henq
28/02/03, 03:05
probeer 's iets als:

select count (s1 as if (k1=1,1,0)), count (s2 as .... enz

de precieze syntax van het if-functie moet je opzoeken, weet ik niet uit
mijn hoofd. het gaat erom dat je een computed value gebruikt. alle waarden
ongelijk aan 1 zet je hiermee als het ware op 0.

~henk


"Arie" <nospam@nolegaldomain.como> schreef in bericht
news:o58_9.901867$xm4.34814529@Flipper...
> Ik heb een mySQL-tabel waarin de kolommen(k) een waarde 0, 1 of 2 kunnen
> krijgen.
>
> vb.
> id | k1 | k2 | k3 | k4
> 1 | 2 | 2 | 0 | 2
> 2 | 1 | 0 | 1 | 1
> 3 | 2 | 1 | 2 | 1
> 4 | 2 | 2 | 1 | 1
>
> Om te tellen hoeveel rijen voor iedere kolom de waarde 1 hebben gebruik
> ik nu:
>
> <?php
> for($i=3;$i<=4;$i++){
> $query="SELECT COUNT(k$i) FROM tabel WHERE k$i = 1";
> ...
> }
> ?>
>
> Ik wil graag het bovenste tot 1 query terugbrengen, zodat het resultaat
> er als volgt uit ziet:
>
> COUNT(k1) | COUNT(k2) | COUNT(k3) | COUNT(k4)
> 1 | 1 | 2 | 3
>
> Mijn vraag is dan ook: Hoe ziet zo'n query eruit?
> En als het niet kan hoe dien ik de antwoordmogelijkheden 0, 1 en 2 dan te
> coderen om wel alle optellingen in 1 query te kunnen weergeven of
> hieruit te kunnen herleiden?
>
> groeten,
>
> Arie
>
>