Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête agrégée sans GROUP BY

Un changement a été fait dans la version 5.7-ish où il rejettera désormais, par défaut, les requêtes dans lesquelles vous agrégez à l'aide d'une fonction (sum , avg , max , etc.) dans le SELECT clause et échouer à mettre les champs non agrégés dans le GROUP BY clause. Ce comportement fait partie intégrante de tous les autres RDBMS et MySQL saute enfin à bord.

Vous avez deux options :

  1. Vous pouvez modifier les paramètres MySQL pour qu'ils adoptent par défaut l'ancien comportement afin d'autoriser des requêtes moins intéressantes comme celle-ci. Les informations peuvent être trouvées ici
  2. Vous pouvez corriger votre requête

L'option 2 ressemblerait à :

SELECT id, password, COUNT(id) AS count FROM users WHERE email = :email GROUP BY id, password LIMIT 1