1

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
4

1 回答 1

1

将 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
于 2009-09-22T18:06:29.090 回答