Frage

Wenn bei der Ausführung von ONLY_FULL_GROUP_BY Modus, erhalte ich die Fehlermeldung "Nicht-Gruppierung Feld 'Abstand' in verwendet wird von Klausel", wenn Sie die folgende Abfrage ausgeführt wird. Die Abfrage zählt die Anzahl der Hotels, die innerhalb von 15 km Entfernung von einer bestimmten Breite und Länge sind. Gibt es eine Möglichkeit, diese Abfrage neu zu schreiben, so dass ich nicht mehr in ONLY_FULL_GROUP_BY Modus nicht die Fehler?

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
War es hilfreich?

Lösung

Ändern Sie die HAVING auf eine zusätzliche WHERE-Klausel:

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

Ich bin mir nicht sicher, ob MySQL mit den Alias-Spaltennamen in der WHERE-Klausel (distance in diesem Fall) unterstützt. Wenn nicht, nur um es zu ändern:

AND (foo * 100) < 15
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top