期望select count(distinct country)返回46,但只得到1

7gs2gvoe  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(236)

我有一个用php编写的简单函数。
它在成员数据库中查找不同的国家。
有46个(手工计算),但函数只返回1。
我做错什么了吗?

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

6kkfgxo01#

如果要获取所有不同的值(而不是不同值的计数),正确的查询是:

SELECT DISTINCT(country) from members2;

所以如果 members2 包含100行 country 将值设置为“australia”和37,并将值设置为“usa”,您将得到一个显示“australia”的结果行和一个显示“usa”的结果行。
通过查询,您只会得到一个结果“2”,因为表中有两个不同的国家

ulydmbyx

ulydmbyx2#

查询返回的行数为1。因此你得到的是正确的。
如果你想数数,那就别这么做 $count = mysql_num_rows($run); 相反,只需返回结果。

相关问题