Ich habe mein System aktualisiert und MySql 5.7.9 mit PHP für eine Webanwendung installiert, an der ich arbeite. Ich habe eine Abfrage, die dynamisch erstellt wird, und wenn sie in älteren Versionen von MySQL ausgeführt wird, funktioniert sie einwandfrei. Seit dem Upgrade auf 5.7 erhalte ich folgende Fehlermeldung:
Ausdruck Nr. 1 der SELECT-Liste befindet sich nicht in der GROUP BY-Klausel und enthält die nicht aggregierte Spalte 'support_desk.mod_users_groups.group_id', die funktional nicht von den Spalten in der GROUP BY-Klausel abhängig ist. Dies ist nicht kompatibel mit sql_mode = only_full_group_by
Beachten Sie die Handbuchseite für MySQL 5.7 zum Thema Server-SQL-Modi .
Dies ist die Abfrage, die mir Probleme bereitet:
SELECT mod_users_groups.group_id AS 'value',
group_name AS 'text'
FROM mod_users_groups
LEFT JOIN mod_users_data ON mod_users_groups.group_id = mod_users_data.group_id
WHERE mod_users_groups.active = 1
AND mod_users_groups.department_id = 1
AND mod_users_groups.manage_work_orders = 1
AND group_name != 'root'
AND group_name != 'superuser'
GROUP BY group_name
HAVING COUNT(`user_id`) > 0
ORDER BY group_name
Ich habe ein bisschen gegoogelt, aber ich verstehe nicht only_full_group_by
genug, um herauszufinden, was ich tun muss, um die Abfrage zu beheben. Kann ich die only_full_group_by
Option einfach deaktivieren oder muss ich noch etwas tun?
Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
not a GROUP BY expression
Das war's." Sie könnten genauso gut nur einen numerischen Fehlercode und überhaupt keine Nachricht haben.