Eu atualizei meu sistema e instalei o MySql 5.7.9 com php para um aplicativo da Web em que estou trabalhando. Eu tenho uma consulta que é criada dinamicamente e, quando executada em versões mais antigas do MySql, funciona bem. Desde a atualização para 5,7, recebo este erro:
A expressão nº 1 da lista SELECT não está na cláusula GROUP BY e contém a coluna não agregada 'support_desk.mod_users_groups.group_id', que não depende funcionalmente das colunas da cláusula GROUP BY; isso é incompatível com sql_mode = only_full_group_by
Observe a página Manual do Mysql 5.7 no tópico Modos SQL do servidor .
Esta é a consulta que está me dando problemas:
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
Eu pesquisei sobre o assunto no Google, mas não entendo o only_full_group_by
suficiente para descobrir o que preciso fazer para corrigir a consulta. Posso simplesmente desativar a only_full_group_by
opção ou há outra coisa que preciso fazer?
Entre em contato se precisar de mais informações.
not a GROUP BY expression
" É isso aí. Eles podem também ter apenas um código de erro numérico e nenhuma mensagem.