2012-01-29 55 views
0

我的查询:计数数据

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

,它显示:

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

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

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

    ) 

我需要统计数据(在这个例子中查询必须归还3的结果)


我试过COUNT(ID)但结果对我不好。

结果:

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

我试图SELECT COUNT(1)

结果:

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

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

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

还没不是一数(3)。我想是这样的[用户] => 3

+1

你是什么意思的“效果不好”?你有错误吗?不是正确的号码吗? – jprofitt 2012-01-29 00:14:50

+0

删除'GROUP BY'然后....并只是'SELECT COUNT(DISTINCT id)' – Wrikken 2012-01-29 00:15:56

+0

我不能删除GROUP BY follow_id,因为http://stackoverflow.com/questions/9049401/select-all-my -and-my-friends-friends-except-us-both-sql此组防止显示重复的朋友 – Viktors 2012-01-29 00:35:14

回答

2

如果您只需要数量,而不是数据本身,你可以试试这个:

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

我只想找回一个数字(例如3) – Viktors 2012-01-29 00:27:31

+0

我试过了你的查询,不显示一个数字。结果是像东西count(id) – Viktors 2012-01-29 00:28:19

+0

然后'SELECT count(1)'将工作 – Mike 2012-01-29 00:28:49

1
$count=mysql_num_rows($sql); 

你可以试试这个

1

如果我理解你的需要,你可以使用阵列本身上数如下:

   $count=count($users)