Formation Apprendre MySQL : - Only_full_group_by - Grafikart
Maybe your like
- Tutoriels
- Cursus
- Formations
- Premium
- Blog
- Forum
- S'inscrire · Se connecter
- Afficher le menu
Introduction
Introduction 1 min Qu’est ce que MySQL ? 2 min Installation 3 min PHPMyAdmin 3 minLes bases
Créer une base de données 8 min Créer une table 25 min Insérer des données, INSERT INTO 11 min Supprimer des données, DELETE FROM 7 min Modifier des données, UPDATE 5 min Sélectionner des données, SELECT 19 minLes fonctions
Fonctions numériques 4 min Fonctions sur les textes 8 min Fonctions temporelles 24 minNotions avancées
Dumps 6 min Les jointures 15 min Recherches FULLTEXT 13 min Les Transactions 7 min Les requêtes préparées 5 min Les vues 8 minConclusion
Conclusion 1 minLes erreurs connues
only_full_group_by 6 min Junior Télécharger la vidéo Description Sommaire À propos de ce tutorielVous essayez de faire un GROUP BY et vous rencontrez l'erreur suivante :
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'XXXXX' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_byLa cause
Pour comprendre la source de cette erreur le mieux est un petit exemple. Prenons une liste de personnes :
id | firtname | lastname 12 | John | Doe 14 | Jane | Doe 20 | Marc | Boher 50 | Marie | LaforeEt essayons la requête suivante :
SELECT firstname, lastname FROM users GROUP BY lastnameLe système va grouper les données par lastname mais il y a plusieurs utilisateurs nommés Doe. L'outil va devoir choisir une ligne à renvoyer pour le prénommais ne sait pas quelle donnée renvoyer. Sans le mode SQL only_full_group_by il se contente de renvoyer une ligne (sans une logique déterminée pour le choix de la ligne) ce qui peut engendrer des inconsistences. Avec le mode only_full_group_by il renvoie tout simplement une erreur pour signifier le problème.
Mais je n'avais pas cette erreur avant ?
Si vous vous demandez pourquoi vous n'aviez pas cette erreur avant, cela est dù à un changement des modes SQL par défaut et l'activation de ONLY_FULL_GROUP_BY (à partir de la version 5.7 de MySQL).
La solution
Pour remédier au problème vous pouvez utiliser des fonctions d'agrégation pour exprimer le résultat à récupérer.
SELECT MIN(firstname), lastname FROM users GROUP BY lastnameSi vous voulez garder le comportement précédent dans le cadre de MySQL vous pouvez utiliser la fonction d'agrégation ANY_VALUE().
Une seconde option est de modifier les modes sql pour supprimer cette restriction (je conseille cependant de corriger les requêtes SQL plutôt que de se reposer sur la configuration de votre SGBD).
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); Publié Technologies utilisées MySQL 5.7Introduction
Introduction 1 min Qu’est ce que MySQL ? 2 min Installation 3 min PHPMyAdmin 3 minLes bases
Créer une base de données 8 min Créer une table 25 min Insérer des données, INSERT INTO 11 min Supprimer des données, DELETE FROM 7 min Modifier des données, UPDATE 5 min Sélectionner des données, SELECT 19 minLes fonctions
Fonctions numériques 4 min Fonctions sur les textes 8 min Fonctions temporelles 24 minNotions avancées
Dumps 6 min Les jointures 15 min Recherches FULLTEXT 13 min Les Transactions 7 min Les requêtes préparées 5 min Les vues 8 minConclusion
Conclusion 1 minLes erreurs connues
only_full_group_by 6 minTag » Apprendre Mysql (6/20)
-
Apprendre MySQL (6/20) : Créer Une Table - YouTube
-
Apprendre MySQL (6/20) : Créer Une Table | Cursa
-
Tutoriel MySQL Complet Pour Les Débutants - IONOS
-
(PDF) Eyrolles Apprendre Mysql | Ness You
-
MySQL Programming Course Online For Free Tutorial With Certificate
-
Apprendre MySQL | 3WA
-
(Cours Youtube Gratuit) Apprendre MySQL (6/20) : Créer Une Table
-
[PDF] Administrez Vos Bases De Données Avec MySQL - Zeste De Savoir
-
[PDF] Cours De Base De Données Cours N.2 Introduction à MySQL ...
-
[PDF] Introduction à MySQL
-
Apprenre MySQL En Ligne - Débutant | Skilleos
-
Amazon RDS – Avis De Sécurité MySQL
-
SQL- Formation Complète De A à Z Sous MySQL | Udemy
-
[PDF] Bases De Données Avec MySQL - IGM