2009-09-22 10 views
1

Lors de l'exécution dans le mode ONLY_FULL_GROUP_BY, je reçois l'erreur « champ non regroupement « distance » est utilisé dans PRESENTANT clause » lors de l'exécution de la requête suivante. La requête compte le nombre d'hôtels situés à moins de 15 km d'une certaine latitude & longitude. Existe-t-il un moyen de réécrire cette requête afin que je ne reçoive plus l'erreur en mode ONLY_FULL_GROUP_BY?Comment sortir avec le champ non-groupement dans 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 

Répondre

0

Modifier having à une clause WHERE supplémentaire:

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

Je ne suis pas sûr que prend en charge MySQL en utilisant le nom de la colonne crénelage dans la clause WHERE (distance dans ce cas). Sinon, changez-le en:

AND (foo * 100) < 15 
+0

MySQL ne supporte pas l'utilisation de l'alias de colonne dans le WHERE. – user2045006