Zaktualizowałem system i zainstalowałem MySql 5.7.9 z php dla aplikacji internetowej, nad którą pracuję. Mam zapytanie, które jest tworzone dynamicznie, a kiedy działa w starszych wersjach MySql, działa dobrze. Od aktualizacji do 5.7 pojawia się ten błąd:
Wyrażenie nr 1 listy SELECT nie znajduje się w klauzuli GROUP BY i zawiera niezagregowaną kolumnę „support_desk.mod_users_groups.group_id”, która nie jest funkcjonalnie zależna od kolumn w klauzuli GROUP BY; jest to niezgodne z trybem_sql = only_full_group_by
Zwróć uwagę na stronę Podręcznik dla MySQL 5.7 na temat trybów SQL serwera .
Oto pytanie, które sprawia mi problemy:
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
Zrobiłem trochę googling na ten temat, ale nie rozumiem only_full_group_by
wystarczająco dużo, aby dowiedzieć się, co muszę zrobić, aby naprawić zapytanie. Czy mogę po prostu wyłączyć tę only_full_group_by
opcję, czy jest coś jeszcze, co muszę zrobić?
Daj mi znać, jeśli potrzebujesz więcej informacji.
not a GROUP BY expression
” To jest to. Równie dobrze mogą mieć numeryczny kod błędu i w ogóle nie mieć wiadomości.