我已经升级了我的系统,并为我正在开发的 Web 应用程序安装了带有 php 的 MySql 5.7.9。我有一个动态创建的查询,当在旧版本的 MySql 中运行时它工作正常。自升级到 5.7 以来,我收到此错误:
SELECT 列表的表达式 #1 不在 GROUP BY 子句中,并且包含非聚合列“support_desk.mod_users_groups.group_id”,它在功能上不依赖于 GROUP BY 子句中的列;这与 sql_mode=only_full_group_by 不兼容
请注意有关服务器 SQL 模式主题的 Mysql 5.7 手册页。
这是给我带来麻烦的查询:
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
选项,还是我需要做其他事情?
如果您需要更多信息,请与我们联系。