0

名前のテーブルがusersあり、その中に という名前の列がありますsource。列には、文字列 (facebook、google、yahoo) である 3 つの異なるタイプの値が含まれています。ここで、その列にいくつの Facebook 文字列、Google 文字列、および Yahoo 文字列が存在するかをカウントする必要があります。

PHPクエリを使用してそれを行う簡単な方法はありますか?

番号を表示するにはどうすればよいですか!!!!!!!!

4

4 に答える 4

1

このソリューションを使用できます。これにより、カウントが個別の列に取得されるため、php でさまざまな文字列のカウントを簡単に参照できます。

SELECT
    COUNT(CASE WHEN source = 'facebook' THEN 1 END) AS facebook_count,
    COUNT(CASE WHEN source = 'google' THEN 1 END) AS google_count,
    COUNT(CASE WHEN source = 'yahoo' THEN 1 END) AS yahoo_count
FROM
    users

編集:この回答へのコメントによると... PHPを使用してこれらの値を取得する方法については、次のようになります。

$sql = "
    SELECT
        COUNT(CASE WHEN source = 'facebook' THEN 1 END) AS facebook_count,
        COUNT(CASE WHEN source = 'google' THEN 1 END) AS google_count,
        COUNT(CASE WHEN source = 'yahoo' THEN 1 END) AS yahoo_count
    FROM
        users";

$social = mysql_query($sql);

while($row = mysql_fetch_assoc($social))
{
    echo "FB Count: {$row['facebook_count']}" . '<br />';
    echo "Google Count: {$row['google_count']}" . '<br />';
    echo "Yahoo Count: {$row['yahoo_count']}";
}
于 2012-07-09T08:36:19.317 に答える
0

これを試して:

 Select source, count(1) from users where source like 'facebook'
于 2012-07-09T08:11:40.660 に答える
0
select source, count(source) from users group by source
于 2012-07-09T08:11:54.457 に答える
0

source列がオプションのフィールドでない場合は、次のように単純に使用できます。

select source as source_name, count(*) as counts from users group by source

それ以外の場合は、次のように使用できます。

select source as source_name, count(source) as counts from users group by source
于 2012-07-09T08:26:54.693 に答える