2012-01-29 3 views
0

ma requête:données de comptage de la table SQL

  "SELECT id 
      FROM user_follow 
      WHERE user_id IN(3,6) AND follow_id NOT IN(3,6) 
      GROUP BY follow_id"; 

et spectacle:

[users] => Array 
    (
     [0] => Array 
      (
       [id] => 20 
      ) 

     [1] => Array 
      (
       [id] => 9 
      ) 

     [2] => Array 
      (
       [id] => 19 
      ) 

    ) 

Je dois compter les données (dans cet exemple requête doit redonner 3 comme résultat)


J'ai essayé COUNT (id) mais le résultat n'était pas bon pour moi.

Résultat:

 [0] => Array 
      (
       [count(id)] => 1 
      ) 

j'ai essayé SELECT count (1)

résultat:

 [0] => Array 
      (
       [count(1)] => 1 
      ) 

     [1] => Array 
      (
       [count(1)] => 2 
      ) 

     [2] => Array 
      (
       [count(1)] => 1 
      ) 

Pas encore pas un seul numéro (3). Je veux quelque chose comme ça [users] => 3

+1

que voulez-vous dire par le « résultat n'a pas été bon »? Avez-vous eu une erreur? Ce n'était pas le bon numéro? – jprofitt

+0

Supprimer le 'GROUP BY' alors .... et juste' SELECT COUNT (ID DISTINCT) ' – Wrikken

+0

Je ne peux pas déposer GROUP BY follow_id à cause de http://stackoverflow.com/questions/9049401/select-all-my -et-mon-ami-amis-sauf-nous-les-deux-sql ce groupe empêche de montrer les amis dupliqués – Viktors

Répondre

2

Si vous avez besoin que le nombre et non les données elles-mêmes, vous pouvez essayer ceci:

SELECT count(1) 
FROM user_follow 
WHERE user_id IN(3,6) AND follow_id NOT IN(3,6) 
GROUP BY follow_id 
+0

Je veux ne récupérer qu'un seul numéro (par exemple 3) – Viktors

+0

J'ai essayé votre requête, ne montrez pas un nombre. le résultat est quelque chose comme count (id) – Viktors

+0

puis 'SELECT count (1)' fonctionnera – Mike

1
$count=mysql_num_rows($sql); 

vous pouvez essayer cette

1

si je comprends votre besoin, vous pouvez utiliser compter sur le tableau lui-même comme suit:

   $count=count($users) 
Questions connexes