Maison > base de données > tutoriel mysql > Pourquoi MySQL lance-t-il une erreur « main.users.type » n'est-elle pas dans GROUP BY ?

Pourquoi MySQL lance-t-il une erreur « main.users.type » n'est-elle pas dans GROUP BY ?

Patricia Arquette
Libérer: 2024-12-08 00:20:15
original
609 Les gens l'ont consulté

Why is MySQL Throwing a 'main.users.type' Isn't in GROUP BY Error?

Erreur MySQL : 'main.users.type' n'est pas dans GROUP BY

Le message d'erreur que vous avez rencontré dans phpMyAdmin indique que vous il manque une colonne (type dans ce cas) de la clause GROUP BY de votre requête.

Raison :

MySQL exige que toutes les colonnes de la clause SELECT qui ne sont pas des fonctions d'agrégation (par exemple, COUNT, SUM) doivent être incluses dans GROUP BY. clause. Cela garantit que les résultats sont regroupés correctement en fonction de ces colonnes.

Correction :

Pour résoudre l'erreur, vous devez ajouter la colonne manquante à la clause GROUP BY :

SELECT `name`, `type`, `language`, `code`
FROM `users`
WHERE `verified` = '1'
GROUP BY `name`, `type`, `language`, `code`
ORDER BY `count` DESC
LIMIT 0, 25
Copier après la connexion

Contexte :

En SQL92, c'est un l'exigence que toutes les colonnes de la clause SELECT fassent partie de la clause GROUP BY. Dans SQL99, cette restriction a été assouplie pour autoriser les colonnes qui dépendent fonctionnellement de la clause GROUP BY. Cependant, MySQL autorise par défaut le groupe partiel, ce qui peut conduire à des résultats imprévisibles.

Pour garantir la cohérence, vous pouvez définir le @@sql_mode sur 'ONLY_FULL_GROUP_BY' :

SET @@sql_mode='ONLY_FULL_GROUP_BY';
Copier après la connexion

Avec Avec ce paramètre, toute requête GROUP BY partielle entraînera une erreur, vous obligeant à inclure toutes les colonnes nécessaires dans la clause.

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