1

我有这个代码来计算一个主题的回复数,

$sql = mysql_query("SELECT count(*) FROM ".prefix."REPLY WHERE TOPIC_ID = '$t' AND R_AUTHOR = '$m' ".$Open_SQL." ") or die(mysql_error());
    $Count = mysql_result($sql, 0, "count(*)");
    if ($Count > 0) {
        $Count = $Count;
    }
    else {
        $Count = "";
    }
return($Count);
mysql_free_result($sql);
}

它显示结果很好,我需要在 DESC 中订购此结果。

有什么建议么?

4

2 回答 2

2

您只是在选择Count(*)这意味着没有要排序的内容,因为您将准确获得一个数据行,其中包含count.

您可能想要做的是添加 -GROUP BY子句并选择不同的 Stuff 并按计数排序:

table
user | type
1      apple
2      apple
3      cherry

使用这样的表,您可以按类型分组,然后对樱桃/苹果计数进行排序。

SELECT count(*) AS c, type FROM table GROUP BY type ORDER by c DESC/ASC

结果:

c | type
2   apple
1   cherry

但没有GROUP BY它只会返回总数:3- 当然不可能排序。

于 2012-12-04T10:36:59.530 回答
0

你可能想做这样的事情

SELECT some-field, count(*) as count 
FROM your-table
WHERE your-clauses
AND more-clauses
GROUP BY some-field
ORDER BY some-field desc
于 2012-12-04T10:31:02.060 回答