In Version 5.7-ish wurde eine Änderung vorgenommen wo es jetzt standardmäßig Abfragen ablehnt, in denen Sie mit einer Funktion aggregieren (sum
, avg
, max
, etc.) im SELECT
-Klausel und fügen die nicht aggregierten Felder nicht in GROUP BY
ein Klausel. Dieses Verhalten ist ein fester Bestandteil jedes anderen RDBMS und MySQL springt endlich an Bord.
Sie haben zwei Möglichkeiten:
- Sie können die MySQL-Einstellungen auf das alte Verhalten zurücksetzen, um nicht so tolle Abfragen wie diese zuzulassen. Informationen finden Sie hier
- Sie können Ihre Anfrage korrigieren
Option 2 würde in etwa so aussehen:
SELECT id, password, COUNT(id) AS count FROM users WHERE email = :email GROUP BY id, password LIMIT 1