下面的查询中的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
答案 0 :(得分:2)
HAVING
应与GROUP BY
表达式相关。要将行数限制为给定条件,请使用WHERE distance <= 50
答案 1 :(得分:0)
HAVING
适用于汇总值(例如总和(列) 某个条件)
在您的情况下,您应该使用WHERE
代替HAVING
答案 2 :(得分:0)
having子句不会过滤像count子函数那样的行。请尝试使用子查询。