Maison >base de données >tutoriel mysql >Pourquoi ne puis-je pas agréger des requêtes dans MySQL sans clause GROUP BY ?
Agrégation de requêtes sans GROUP BY dans MySQL
Votre requête rencontre une erreur de syntaxe lors de l'agrégation de données sans spécifier de clause GROUP BY. Ce comportement a été introduit dans MySQL 5.7.5 dans le cadre d'un effort visant à garantir l'intégrité de l'agrégation des données.
Le message d'erreur explique que les colonnes non agrégées, telles que l'identifiant dans votre requête, ne peuvent pas apparaître dans le SELECT. list lorsqu'une fonction d'agrégation (telle que COUNT()) est utilisée sans clause GROUP BY. Cela garantit que les résultats de l'agrégation sont précis et cohérents.
Résoudre l'erreur
Vous disposez de deux options pour résoudre cette erreur :
SELECT id, password, COUNT(id) AS count FROM users WHERE email = :email GROUP BY id, password LIMIT 1
Alternativement, si vous pouvez vous assurer que la colonne non agrégée (par exemple, id) est limitée à une seule valeur dans WHERE clause, vous pouvez l'exclure de la clause GROUP BY. Reportez-vous au lien fourni pour des exemples de cette exception.
En utilisant l'une de ces méthodes, vous pouvez résoudre l'erreur et garantir l'agrégation correcte des données dans votre requête MySQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!