Question

Lors de l'exécution dans ONLY_FULL_GROUP_BY Mode, je reçois l'erreur "champ non regroupement 'distance' est utilisé dans HAVING clause" lors de l'exécution de la requête suivante. La requête compte le nombre d'hôtels qui sont à 15 km distance d'une certaine latitude et la longitude. Est-il possible de réécrire cette requête, donc je ne suis pas plus l'erreur dans ONLY_FULL_GROUP_BY Mode?

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
Était-ce utile?

La solution

Modifier having à une supplémentaire clause WHERE:

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

Je ne sais pas si MySQL prend en charge en utilisant le nom de colonne dans la crénelage clause WHERE (de distance dans ce cas). Sinon, il suffit de changer à:

AND (foo * 100) < 15
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top