Maison > base de données > tutoriel mysql > Comment résoudre l'erreur MySQL n°1140 : mélange de colonnes GROUP ?

Comment résoudre l'erreur MySQL n°1140 : mélange de colonnes GROUP ?

Barbara Streisand
Libérer: 2024-12-29 16:51:17
original
750 Les gens l'ont consulté

How to Resolve MySQL Error #1140: Mixing of GROUP Columns?

Erreur MySQL n° 1140 : mélange de colonnes GROUP

Cette erreur se produit lorsqu'une requête MySQL mélange des fonctions GROUP avec des colonnes non-GROUP dans le Liste SELECT, mais sans clause GROUP BY. En d'autres termes, cela suggère que certaines des colonnes sélectionnées doivent être regroupées, tandis que d'autres ne doivent pas.

Considérez la requête SQL suivante :

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;
Copier après la connexion

Cette requête tente de compter les nombre de nœuds de type 'update' et récupérez l'ID du nœud (nid) et la date de mise à jour pour chaque nœud. Cependant, il mélange la fonction GROUP COUNT() avec les colonnes non-GROUP nid et node_data_field_update_date_field_update_date_value dans la liste SELECT.

Pour résoudre cette erreur, désactivez le paramètre ONLY_FULL_GROUP_BY sur le serveur MySQL ou modifiez la requête pour grouper les colonnes non-GROUPE :

Désactivation ONLY_FULL_GROUP_BY :

mysql> SET GLOBAL ONLY_FULL_GROUP_BY = OFF;
Copier après la connexion

Ajout d'un regroupement à la requête :

SELECT COUNT(node.nid) AS node_count,
       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

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