预期SELECT COUNT(国家/地区不同)返回46,但只得到1

时间:2018-10-01 18:40:17

标签: php mysql distinct

我有一个用PHP编写的简单函数。

它将在会员数据库中查找不同的国家/地区。

有46个(手工计算),但该功能仅返回1。

我做错什么了吗?

function getCountryCount(){
    $construct = "SELECT COUNT(DISTINCT country) FROM members2";
    $run = mysql_query($construct);
    $count = mysql_num_rows($run);
    return $count;
}

2 个答案:

答案 0 :(得分:1)

查询返回的行数为一。因此,您得到的是正确的。

如果您要获取计数,请不要执行$count = mysql_num_rows($run);而是返回结果。

答案 1 :(得分:1)

如果您想获取所有不同值(而不是不同值的计数),则正确的查询应为:

SELECT DISTINCT(country) from members2;

因此,如果members2包含100行,且country的值设置为“ Australia”,而37行的值设置为“ USA”,则您将得到一个结果行,其中显示“ Australia”,而另一行结果行显示为“美国”。

在您的查询中,由于表格中有2个不同的国家/地区,因此您只会得到一个显示为“ 2”的结果