Hier ist eine Abhilfe MySQL 5.7 wirkt wie die vorherige Version für GROUP BY
Abfragen zu machen - dies nicht die akzeptierte Antwort sein sollte:
Zuerst erfahren Sie Ihre aktuelle sql_mode
:
SELECT @@sql_mode;
On mein Test-Server, dies ergab:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Der Fehler Sie sehen durch die ONLY_FULL_GROUP_BY
Flagge verursacht wird. Sie können Ihre MySQL-Konfigurationsdatei aktualisieren, um dieses Flag zu entfernen. Finde und bearbeite deine my.cnf
Datei (IIRC kannst du über das WAMP-Menü in der Taskleiste zugreifen, aber es ist ein paar Jahre her, dass ich WAMP benutzt habe, damit sich das geändert hat).
Überprüfen Sie, ob dort bereits ein sql_mode
definiert ist. Wenn nicht, füge es irgendwo unter der Überschrift [mysqld]
hinzu. Machen Sie den gleichen Wert wie für sql_mode
aus der vorherigen Abfrage, minus die ONLY_FULL_GROUP_BY
Flag. Also in meinem Fall würde das sein:
[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Speichern Sie die Datei und starten Sie MySQL neu, um die Änderungen zu laden.
Beachten Sie, dass Änderungen, die an der Datei my.cnf
vorgenommen wurden, höchstwahrscheinlich bei der nächsten Aktualisierung von WAMP überschrieben werden. Daher ist dies keine dauerhafte Lösung. Für eine dauerhafte Lösung sollten Sie Ihre Abfragen so aktualisieren, dass sie mit dem Standard sql_mode
kompatibel sind.
Wie lautet die PHP-Version und der PHP-Code, den Sie zum Ausführen der Abfrage verwenden? – AbraCadaver
Es ist PHP5.6.25. –
Dies wird nicht als Antwort angezeigt, da es sich hierbei um eine Problemumgehung und nicht um eine Lösung handelt. Meine Standardlösung dafür besteht darin, meine MySQL-Konfiguration zu aktualisieren, um den 'sql_mode' auf einen zu setzen, der' only_full_group_by' nicht enthält. Ich wäre jedoch daran interessiert, herauszufinden, was die richtige Lösung ist. – rickdenhaan