Menu

MySQL Version 5.7 et GROUP BY

Sinistrus 872 Messages postés mercredi 12 décembre 2007Date d'inscription 5 avril 2018 Dernière intervention - 5 mars 2018 à 12:52 - Dernière réponse : Sinistrus 872 Messages postés mercredi 12 décembre 2007Date d'inscription 5 avril 2018 Dernière intervention
- 6 mars 2018 à 09:13
Bonjour à tous !

J'ai mise à jour ma base de donnée en 5.7 et je rencontre quelques soucis quand au code PHP pour afficher les données de ma table:
 Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near 'ONLY_FULL_GROUP_BY Libelle' at line 1 in /www/includes/menu.php:30
Stack trace: #0 /www/includes/menu.php(30): PDO->query('SELECT * FROM t...') 
#1 /www/includes/header.php(413): include('/www...') 
#2 /www/index.php(1): include('/www...') 
#3 {main} thrown in /www/includes/menu.php on line 30


Voici ma requête :
SELECT * FROM table WHERE pays='1' AND Activer='1' GROUP BY Libelle

La requête fonctionnait très bien en 5.4 mais depuis la 5.7 je ne comprends pas ce problème.

Après avoir cherché un peu, j'ai compris que le
SELECT
ne doit pas contenir de
*
si le
GROUP BY
doit contenir une seule valeur comme 'Libelle'.
J'aurais donc :
SELECT (tout, les, champs, de, ma, table) FROM ma_table WHERE (conditions) GROUP BY (tout, les, champs, de, ma, table)

Mais dans ce cas là, le GROUP BY groupera la première valeur ou toutes les valeurs ? Enfin, y a t-il un moyen de remédier à cela ?

Merci de votre aide.

Afficher la suite 

Votre réponse

3 réponses

jordane45 21437 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 juin 2018 Dernière intervention - 5 mars 2018 à 20:36
0
Merci
Bonjour,

Et tout simplement ceci.. ça donne quoi ?
SELECT (les, champs, de, ma, table,voulus,dont le champ libelle)
FROM ma_table 
WHERE (conditions)
 GROUP BY Libelle

jordane45 21437 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 juin 2018 Dernière intervention - 5 mars 2018 à 20:37
Sinistrus 872 Messages postés mercredi 12 décembre 2007Date d'inscription 5 avril 2018 Dernière intervention - 6 mars 2018 à 09:13
Bonjour jordan45, merci de t'intéresser à mon problème.
J'ai contourné le problème avec
$pdo->query('SET sql_mode=""');
, je n'ai plus de message d'erreur, mes requêtes sont donc restées pareilles.
Je me demande si cette solution est la meilleure... sinon ta requête me créait aussi un soucis...
Commenter la réponse de jordane45