MySQL ORDER BY COUNT()?

时间:2011-11-11 21:33:34

标签: mysql sql-order-by

我的数据库中有一个使用此结构(http://cl.ly/3D1D3m1O0v3d0x2j0Z0E

的表设置

我通过while循环运行查询,我想按教程列的计数进行排序。

这是我的查询目前的样子,但我不断收到错误。

$order_list = mysql_query("
    SELECT COUNT(prof), 
    FROM prof_rating 
    ORDER BY COUNT(prof) ASC");

这是我不断发出的警告。

警告:mysql_fetch_assoc()期望参数1是资源,布尔值在

中给出

2 个答案:

答案 0 :(得分:15)

对于它的价值,在select-list中使用聚合函数意味着结果集只有一行。用单行对结果集进行排序是没有意义的。

如果您想要获得每个不同教授值的评分计数,您应该使用:

$order_list = mysql_query("
    SELECT prof, COUNT(*) AS PROFCOUNT, 
    FROM prof_rating 
    GROUP BY prof
    ORDER BY PROFCOUNT ASC'");

这将输出多行,每个prof值一行,每个给定的prof值的行数。

答案 1 :(得分:6)

别名列名,然后将其放在您的order by子句中:)

$order_list = mysql_query("
SELECT COUNT(prof) AS PROFCOUNT, 
FROM prof_rating 
ORDER BY PROFCOUNT ASC'");