Maison > base de données > tutoriel mysql > Comment résoudre l'erreur « Mélange des colonnes GROUP » de MySQL (erreur n° 1140) ?

Comment résoudre l'erreur « Mélange des colonnes GROUP » de MySQL (erreur n° 1140) ?

Linda Hamilton
Libérer: 2024-12-27 16:13:09
original
895 Les gens l'ont consulté

How to Solve MySQL's

Résolution de l'erreur "Mélange des colonnes GROUP" dans MySQL

L'erreur #1140 dans MySQL, indiquant un "Mélange des colonnes GROUP", se produit lorsqu'une requête contient des colonnes non agrégées (non-GROUP) dans la clause SELECT tout en incluant également des colonnes agrégées sans clause GROUP BY. Pour résoudre ce problème, il existe deux approches principales :

1. Désactivation de ONLY_FULL_GROUP_BY :

MySQL a un paramètre de configuration appelé ONLY_FULL_GROUP_BY, qui est activé par défaut. Ce paramètre applique une sémantique GROUP BY stricte, exigeant que toutes les colonnes non agrégées de la clause SELECT soient incluses dans la liste GROUP BY. Pour désactiver ce paramètre, exécutez la requête suivante :

SET SESSION ONLY_FULL_GROUP_BY = OFF;
Copier après la connexion

Désactivez ONLY_FULL_GROUP_BY pour permettre à la requête de s'exécuter sans modification.

2. Ajout de colonnes GROUP BY :

Vous pouvez également modifier la requête pour inclure tous les champs sélectionnés dans la clause GROUP BY. Cela garantit que toutes les colonnes non agrégées sont « regroupées » et que l'ensemble de résultats satisfait à la sémantique stricte GROUP BY :

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, node_data_field_update_date.field_update_date_value
ORDER BY node_data_field_update_date_field_update_date_value DESC;
Copier après la connexion

Modifier la requête pour inclure la clause GROUP BY résout le problème en regroupant explicitement le résultat défini sur toutes les colonnes non 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal