2017-10-06 5 views
1

J'ai un AJAX GET-demande qui devrait revenir à moi la liste des catégories mais j'ai une erreur SQL SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated columnSulu CMS erreur GET-demande

Ma demande URl est le suivant: http://my-domain.com/admin/api/categories?flat=true&sortBy=depth&sortOrder=asc&fields=name,id

Qu'est-ce la meilleure façon de résoudre ce problème? Dois-je changer le fichier mysql .cnf ou il peut être corrigé dans le code?

+0

Le groupe général par la règle dit: « Si une clause GROUP BY est spécifiée, chaque référence de colonne dans la liste SELECT doit soit identifier une colonne de regroupement ou être l'argument d'une fonction d'ensemble. " – jarlh

+0

oui, mais sql-query est généré dans le fournisseur, donc je ne peux pas changer le code des fournisseurs. C'est pourquoi je demande quelle est la meilleure solution de ce problème dans MySu –

+1

MySQL a un mode de compatibilité pour permettre ces GROUP BY invalides. Peut-être que vous pouvez le définir? – jarlh

Répondre

1

OK, le problème était dans la compatibilité MySQL.

Donc, je viens de changer le fichier mysql.cnf en ajoutant des lignes suivantes: [mysqld] sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION