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


COUNT() is selecting number of rows in table

我在下面的查询中的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

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

HAVING处理聚合值(例如具有特定条件的 sum(column)您应该使用WHERE而不是HAVING

having 子句

不会像 where 子句那样筛选行。请尝试改用子查询。