从表中选择*,其中包含where和order by子句问题

时间:2010-02-20 08:30:23

标签: sql mysql database

我需要获得有评论的项目数量,但我不能让这个SQL语句为我工作........任何建议?

Select count(Name) as TotalComments 
from TableName where comment <> '' 
order by ID 

错误讯息:

  

列“TableName.ID”在ORDER BY子句中无效,因为它不包含在聚合函数或GROUP BY子句中。

我到底错过了什么?

2 个答案:

答案 0 :(得分:4)

等一下......

Select count(Name) as TotalComments  
from TableName where comment <> ''  
order by ID 

您正在选择一个计数,因此Order By子句毫无意义。你应该得到一个标量结果。 (单个值,如果是行则不是集合)

这是一个棘手的问题吗?现在还为时过早。

只需删除“Order By”子句即可。这是不必要的。

答案 1 :(得分:0)

尝试这个(我在Sql server中尝试过而不是在MySql中)

SELECT     Name, COUNT(ID) AS TotalComments
FROM       TableName
WHERE     (Comment IS NOT NULL)
GROUP BY Name
ORDER BY TotalComments