Domanda

Quando si esegue in ONLY_FULL_GROUP_BY modalità, ottengo l'errore "non-raggruppamento campo 'distanza' viene utilizzato in CHE HA clausola di" quando si esegue la seguente query. La query conta la quantità di alberghi che sono a meno di 15 km di distanza di una certa latitudine e longitudine. C'è un modo per riscrivere la query in modo da non ottengo l'errore più in modalità 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
È stato utile?

Soluzione

Modificare il HAVING per un ulteriore clausola WHERE:

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

Non sono sicuro se MySQL supporta utilizzando il nome della colonna alias nella clausola WHERE (distance in questo caso). In caso contrario, solo modificarla in:

AND (foo * 100) < 15
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top