MySQL Version 5.7 et GROUP BY

Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
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