Я обновил свою систему и установил MySql 5.7.9 с php для веб-приложения, над которым я работаю. У меня есть запрос, который динамически создается, и при работе в более старых версиях MySql он отлично работает. С момента обновления до 5.7 я получаю эту ошибку:
Выражение # 1 списка SELECT не находится в предложении GROUP BY и содержит неагрегированный столбец "support_desk.mod_users_groups.group_id", который функционально не зависит от столбцов в предложении GROUP BY; это несовместимо с sql_mode = only_full_group_by
Обратите внимание на страницу руководства для Mysql 5.7 на тему Режимы сервера SQL.
Это запрос, который вызывает у меня проблемы:
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
Я сделал некоторые ошибки в этом вопросе, но я не понимаю only_full_group_by
достаточно, чтобы выяснить, что мне нужно сделать, чтобы исправить запрос. Могу ли я просто отключить опцию only_full_group_by
, или есть что-то еще, что мне нужно сделать?
Сообщите мне, если вам нужна дополнительная информация.