首页 > 数据库 > mysql教程 > 如何解析MySQL 5.7`halle_full_group_by`错误?

如何解析MySQL 5.7`halle_full_group_by`错误?

Linda Hamilton
发布: 2025-01-25 02:51:09
原创
611 人浏览过

How to Resolve the MySQL 5.7 `only_full_group_by` Error?

MySQL 5.7 中的 only_full_group_by 错误

MySQL 5.7 版本引入了 only_full_group_by 模式,此模式要求 SELECT 语句中所有未进行聚合的列都必须包含在 GROUP BY 语句中。当查询的 SELECT 语句中包含未出现在 GROUP BY 语句中的未聚合列时,就会发生此错误。

解决此问题的方法有两种:

方法一:将缺失的列添加到 GROUP BY

将缺失的列 mod_users_groups.group_id 添加到 GROUP BY 语句中:

<code class="language-sql">SELECT 
  g.group_id AS 'value', 
  g.group_name AS 'text' 
FROM mod_users_groups g
LEFT JOIN mod_users_data d ON g.group_id = d.group_id 
WHERE g.active = 1 
  AND g.department_id = 1 
  AND g.manage_work_orders = 1 
  AND g.group_name != 'root' 
  AND g.group_name != 'superuser' 
GROUP BY 
  g.group_name, 
  g.group_id 
HAVING COUNT(d.user_id) > 0 
ORDER BY g.group_name</code>
登录后复制

这确保了 SELECT 语句中所有未进行聚合的列都包含在 GROUP BY 语句中,从而消除了错误。

方法二:使用聚合函数

或者,如果缺失的列与分组无关,可以使用聚合函数对数据进行汇总后再选择它。例如,如果 group_name 确实是唯一的,可以使用以下聚合函数替换 mod_users_groups.group_id

<code class="language-sql">MIN(mod_users_groups.group_id)</code>
登录后复制

这将返回每个唯一 group_name 的最小 group_id,确保 SELECT 语句只包含聚合列。

以上是如何解析MySQL 5.7`halle_full_group_by`错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板