Я обновил свою систему и установил 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
опцию, или мне нужно что-то еще сделать?
Дайте мне знать, если вам нужна дополнительная информация.
not a GROUP BY expression
Вот и все. Они могли бы просто иметь числовой код ошибки и вообще никакого сообщения.