2009-06-16 8 views
0

J'ai une assez grande base de données mysql et je voudrais compter toutes les valeurs égales, pour m'expliquer mieux:Quelle est la meilleure pratique pour compter des valeurs égales dans une base de données?

J'ai un champ de pays qui a plusieurs valeurs de pays (USA, UK, MEX, etc.) et je veux obtenir le nombre de pays sans duplicata (si j'ai 100 USA et 2 UK et 1000 MEX le résultat serait 3).

La seule façon que je pouvais trouver est:

$i="0"; 
$query = "SELECT DISTINCT country FROM table"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_array($result)){ 
$i++; 
} 
echo $i; 

Je ne pense vraiment qu'il ya de meilleures façons d'y parvenir, peut-être Trought directement une instruction SQL?

Comme toujours, merci pour vos aimables réponses.

Répondre

8

Vous avez la plupart du temps l'instruction select droite, vous avez juste besoin d'avoir MySQL faire le décompte pour vous:

SELECT COUNT(DISTINCT country) 
FROM table 
+0

C'est aussi ma 200ème réponse. Va moi. – Welbog

0
SELECT country, COUNT(*) AS count 
FROM table 
GROUP BY country 
1

pays SELECT COUNT (pays) DU GROUPE table par pays

Questions connexes