在数据库中计算相等值的最佳实践是什么?

时间:2009-06-16 13:54:49

标签: php mysql

我有一个相当大的mysql数据库,我想计算所有相同的值,以便更好地解释自己:

我有一个国家/地区,其中有多个国家/地区(美国,英国,墨西哥......等)。我希望获得没有重复的国家/地区数量(如果我有100个美国和2个英国和1000个MEX,结果会是3)。

我能想到的唯一方法是:

$i="0";
$query = "SELECT DISTINCT country FROM table"; 
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$i++;
}
echo $i;

我确实认为有更好的方法来实现这一点,也许直接用sql语句?

一如既往地感谢您的回复。

3 个答案:

答案 0 :(得分:8)

你有大多数正确的选择语句,你只需让MySQL为你做计数:

SELECT COUNT(DISTINCT country)
FROM table

答案 1 :(得分:1)

SELECT country,COUNT(country)FROM table GROUP BY country

答案 2 :(得分:0)

SELECT country, COUNT(*) AS count
FROM table
GROUP BY country