如何摆脱HAVING子句中的非分组字段

时间:2009-09-22 08:49:48

标签: mysql group-by having

ONLY_FULL_GROUP_BY 模式下执行时,在执行以下查询时,我会在 HAVING 子句中使用错误“非分组字段'距离'。该查询计算距离某个纬度和距离15公里范围内的酒店数量。经度。有没有办法重写这个查询,所以我不再在 ONLY_FULL_GROUP_BY 模式下得到错误?

SELECT count(id) as total, (foo * 100) AS 'distance'
FROM `hotels` 
WHERE `lng` between 4.56 and 5.08 and `lat` between 52.22 and 52.65 
HAVING `distance` < 15

1 个答案:

答案 0 :(得分:0)

将HAVING更改为其他WHERE子句:

WHERE `lng` BETWEEN 4.56 AND 5.08 AND `lat` BETWEEN 52.22 AND 52.65 
AND `distance` < 15

我不确定MySQL是否支持在WHERE子句中使用别名列名(在本例中为distance)。如果没有,只需将其更改为:

AND (foo * 100) < 15