COUNT()正在选择表中的行数

时间:2012-05-27 17:24:40

标签: php mysql count

下面的查询中的COUNT(*)是选择表users中的行数而不是distance小于50的行数。

请告诉我为什么查询选择表users中的行数而不是距离小于50的行数?

先谢谢。

SELECT COUNT(*), ( 6371 * ACOS( COS( RADIANS( 51.61050836267012 ) ) * COS( RADIANS( latitude ) ) * COS( RADIANS( longitude ) - RADIANS( - 0.23701071739196777 ) ) + SIN( RADIANS( 51.61050836267012 ) ) * SIN( RADIANS( latitude ) ) ) ) 
AS distance
FROM  `users` 
AS `u`
HAVING distance <=50

3 个答案:

答案 0 :(得分:2)

HAVING应与GROUP BY表达式相关。要将行数限制为给定条件,请使用WHERE distance <= 50

答案 1 :(得分:0)

HAVING适用于汇总值(例如总和(列) 某个条件) 在您的情况下,您应该使用WHERE代替HAVING

答案 2 :(得分:0)

having子句不会过滤像count子函数那样的行。请尝试使用子查询。