2012-01-29 2 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(1)] => 1 
      ) 

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

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

がまだないないつの番号(3):

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

Iは、SELECT COUNT(1)

結果を試みました。私は次のように配列自体に、カウントを使用することができ、私はあなたの必要性を理解していた場合、あなたはこの

+1

"結果は良くない"とはどういう意味ですか?間違いましたか?正しい番号ではありませんでしたか? – jprofitt

+0

それから 'GROUP BY'を削除し、ちょうど' SELECT COUNT(DISTINCT id) ' – Wrikken

+0

http://stackoverflow.com/questions/9049401/select-all-myのためにGROUP BY follow_idを削除できません - と - 私の友人 - 友人 - 以外私たちはこのグループは、重複した友人を表示するのを防ぐ – Viktors

答えて

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

私は1つの番号(例えば3)を取得したい – Viktors

+0

私はあなたのクエリを試して、1つの番号を表示しないでください。結果はcount(id) – Viktors

+0

のようなものです。それで 'SELECT count(1)'が動作します – Mike

1
$count=mysql_num_rows($sql); 

>このような何かをしたい[ユーザー] =:

   $count=count($users)