2009-09-22 25 views
1

ONLY_FULL_GROUP_BY模式下執行,我得到的錯誤執行以下查詢時,「非分組字段‘距離’在HAVING子句使用」。該查詢計算距離某個緯度&經度15公里內的酒店數量。有沒有辦法重寫這個查詢,所以我不再在ONLY_FULL_GROUP_BY模式中得到錯誤?如何擺脫非分組字段在HAVING子句

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

更改具有額外的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 
+0

MySQL不支持在WHERE中使用列別名。 – user2045006 2016-02-19 05:27:43