1

ONLY_FULL_GROUP_BYモードで実行すると、次のクエリを実行すると、「グループ化されていないフィールド 'distance' がHAVING句で使用されています」というエラーが表示されます。このクエリは、特定の緯度と経度から 15 km 以内にあるホテルの数をカウントします。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 に答える