【发布时间】:2009-11-27 18:15:32
【问题描述】:
我正在尝试使用 PHP 运行 SQL 查询并选择普通列以及 COUNT。
$sql_str = "select COUNT(DISTINCT name), id, adress from users";
$src = mysql_query($sql_str);
while( $dsatz = mysql_fetch_assoc($src) ){
echo $dsatz['name'] . "<br>";
}
问题是当我的查询中有“COUNT(DISTINCT name)”时,它只会返回第一个条目。当我删除它时,它会从数据库中返回所有匹配的条目。
我可以将其分开并执行 2 个查询,但出于性能考虑,我试图避免这种情况。
我做错了什么? 谢谢,墨西哥
【问题讨论】:
-
你想用这个查询来达到什么目的?看起来你正在混合两种不同的东西。
-
是的,你到底想做什么?查找地址中具有唯一名称的人数或同时获取用户列表和总人数?
-
只需删除 count() 并在您的 while() 循环中执行 $counter++
-
感谢所有答案。明天会读。只是为了澄清:是的,我想在 1 个查询中做 2 件事。计算不同的名称条目(有些出现不止一次)并从所有行中获取值 id、address。
-
我同意 jab11,计算循环中的唯一值。不需要两个查询,您已经选择了所有值。如果您按名称订购,您可以轻松地将当前值与以前的值进行比较,并在值更改时增加计数器。如果您不按名称排序,则需要保留一个关联的名称数组。