Laravel 5.3: Syntaxfehler oder Zugriffsverletzung: 1463 Nicht gruppiertes Feld 'distance' wird in HAVING-Klausel @ verwend

Dieser Fehler trat auf, nachdem die gesamte Quelle auf die Version 5.3 umgestellt wurde, und ich kratzte mir jetzt seit über zwei Stunden den Kopf.

So habe ich diese Art von beredter Frage:

POI::select('*', DB::raw("SQRT( POW((x - {$this->x}),2) + POW((y - {$this->y}),2) ) AS distance"))
        ->where('status', Config::get('app.poi_state.enabled'))
        ->whereNotIn('id', $excludePOIList)
        ->having('distance', '<=', $distance)
        ->orderBy('distance')->get();

Es hat funktioniert, finde vor dem Upgrade jetzt wirft es:

Syntax-Fehler oder Zugriffsverletzung: 1463 In der HAVING-Klausel wird das nicht gruppierte Feld 'distance' verwendet (SQL: select *, SQRT (POW ((x - 860.0000), 2) + POW (((y - 105.0000), 2)) AS Entfernung vonpoi wostatus = 1 undid nicht in (1) mitdistance <= 6 bestellen beidistance asc)

Ich wollte überprüfen, ob der ONLY_FULL_GROUP_BY-Modus auf meinem Server aktiviert ist, aber nicht ...

SELECT @@ sql_mode NO_ENGINE_SUBSTITUTION

Die gleiche Abfrage funktioniert auch in der MySQL-Workbench. Was ist los

Antworten auf die Frage(6)

Ihre Antwort auf die Frage