名前のテーブルがusers
あり、その中に という名前の列がありますsource
。列には、文字列 (facebook、google、yahoo) である 3 つの異なるタイプの値が含まれています。ここで、その列にいくつの Facebook 文字列、Google 文字列、および Yahoo 文字列が存在するかをカウントする必要があります。
PHPクエリを使用してそれを行う簡単な方法はありますか?
番号を表示するにはどうすればよいですか!!!!!!!!
このソリューションを使用できます。これにより、カウントが個別の列に取得されるため、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']}";
}
これを試して:
Select source, count(1) from users where source like 'facebook'
select source, count(source) from users group by source
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