MySQL Version 5.7 et GROUP BY

Fermé
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - Modifié le 5 mars 2018 à 13:24
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 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.

A voir également:

1 réponse

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
5 mars 2018 à 20:36
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

0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
5 mars 2018 à 20:37
0
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
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...
0