Maison >base de données >tutoriel mysql >Comment résoudre l'erreur MySQL n°1140 : « Mélange de colonnes GROUP » ?
Erreur MySQL n°1140 : Comprendre le problème du "Mélange des colonnes GROUP"
L'erreur MySQL n°1140, "Mélange des colonnes GROUP ( MIN(), MAX(), COUNT(), ...) sans colonnes GROUP est illégal s'il n'y a pas de clause GROUP BY", se produit lorsque vous tentez d'agréger données (par exemple, en utilisant des fonctions comme COUNT()) sans regrouper les résultats. Cela peut se produire lorsque la requête SQL contient des fonctions d'agrégation et des colonnes non agrégées dans la clause SELECT et qu'une clause GROUP BY est absente.
Description du problème :
Le La requête SQL suivante illustre ce problème :
SELECT COUNT(node.nid), node.nid AS nid, node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value FROM node node LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid WHERE node.type IN ('update') ORDER BY node_data_field_update_date_field_update_date_value DESC
Exécution de cette requête avec le paramètre ONLY_FULL_GROUP_BY activé sur le serveur entraîne le message d'erreur :
#1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause`
Solution :
Pour résoudre ce problème, il faut soit désactiver le paramètre ONLY_FULL_GROUP_BY, soit appliquer une opération de regroupement dans la requête SQL .
only_full_group_by = 0
SELECT COUNT(node.nid), node.nid AS nid, node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value FROM node node LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid WHERE node.type IN ('update') GROUP BY node.nid ORDER BY node_data_field_update_date_field_update_date_value DESC
En appliquant l'une de ces solutions, vous pouvez contourner l'erreur "Mélange des colonnes GROUP" et récupérer avec succès les données agrégées.
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!