我在下面的查询中的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 子句那样筛选行。请尝试改用子查询。