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()forcolB値も取得できますか? 私はこれを意味します:

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 に答える