以sql DESC顺序计数

时间:2012-12-04 10:16:44

标签: php mysql

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

$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中订购此结果。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您只是选择Count(*),这意味着无需排序,因为您将获得一个包含count的dataRow。

你可能想要做的是添加一个GROUP BY - 子句并选择不同的东西并按计数排序:

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 - 当然不能进行排序。

答案 1 :(得分: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