在 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
答案 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