1

所以我有这样的查询

SELECT DISTINCT colB FROM tbl WHERE colA = "foo" LIMIT 0, 20

这给了我一个最大的数组。20 条记录colA匹配"foo",但没有重复记录。每个数组条目都包含一个关联数组,其中包含 的值colB,例如

0 => array(
       'colB' => 'some_value',
     ),
1 => array(
       'colB' => 'other_value',
     )

我也可以获得COUNT()价值colB吗?我的意思是:

SELECT COUNT() as cbCount FROM tbl WHERE colA = "foo" AND colB = "some_value"
SELECT COUNT() as cbCount FROM tbl WHERE colA = "foo" AND colB = "other_value"

但作为另一个数组字段包含在第一个查询中,例如:

0 => array(
       'colB' => 'some_value',
       'cbCount' => 5,
     ),
1 => array(
       'colB' => 'other_value',
       'cbCount' => 2,
     )
4

2 回答 2

1

您需要做的就是使用GROUP BY子句

SELECT  colB,
        COUNT(colB) AS cbCount
FROM    tableName
WHERE   colA = 'Foo'
GROUP   BY colB
于 2013-08-24T15:31:37.973 回答
1

您需要Group By使用Count-

SELECT 
        colB, count(colB) as cbCount
FROM    
        tbl 
WHERE  
        colA = 'foo' 
GROUP BY 
        colB 
LIMIT 
        0, 20

此查询将获取前 20 行,根据不同的值对它们进行分组colB并给出它们的计数。

于 2013-08-24T15:32:26.420 回答