Page 1 sur 1

compter le nombre d'occurence de valeurs dans un champs

Posté : 01 avr. 2007, 10:48
par orgerix
Bonjour,

J'ai dans une table un champs pouvant contenir a,b et c, et j'aimerai savoir combien de fois il y a a, combien de fois il y a b et combien de fois il y a c.

Y a t il une requete SQL simple qui me permet de faire ca ?

Je me doute qu'il faut utiliser GROUP BY champ, mais après, je ne vois pas...

Au pire, je peux faire 3 requete, mais autand éviter si possible...

Posté : 01 avr. 2007, 10:53
par Cyrano
Je n'ai pas de serveur MySQL fonctionnel sur ma machine pour tester, mais il me semble qu'avec une combinaison COUNT() + DISTINCT() on doit pouvoir obtenir le résultat recherché. :-k

Posté : 01 avr. 2007, 10:58
par orgerix
Après une petite recherche sur les mnuels de MySQL, la requet suivante merche :

SELECT champ COUNT(*) FROM table GROUP BY champ

Enfin, je dis ca, mais j'ai pas encore fait mes tables utilisé par ma requete, donc je peux pas vérifier.

Posté : 02 avr. 2007, 14:52
par Ryle
C'est effectivement la bonne solution, le GROUP BY agira implicitement comme un distinct, donc pas de soucis de ce côté là :)

(il te manque toutefois une virgule entre le nom du champ et le count(*) ;))

Posté : 02 avr. 2007, 16:00
par Expreg
<?php
$req="select count(lechamp) as nb, lechamp from latable group by lechamp";
$res=mysql_query($req);
while($data=mysql_fetch_assoc($res))
{
echo $data['lechamp'],' est présent ',$data['nb'],' fois<br/>';
}
?>

Posté : 02 avr. 2007, 18:38
par orgerix
merci expreg, maintenant, je sais comment nommer mes variable de fonction :D

Quand a ma virgule, je m'en suis apercu dès que j'ai utilisé la requete. SI seulement les erreurs pouvaient être aussi simple a trouver...