我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql8报错this is incompatible with sql_mode=only_full_group_by问题

短信预约 MySQL-IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql8报错this is incompatible with sql_mode=only_full_group_by问题

这篇文章将为大家详细讲解有关Mysql8报错this is incompatible with sql_mode=only_full_group_by问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

MySQL 8 "this is incompatible with sql_mode=only_full_group_by" 错误

错误原因

此错误表明在使用 ONLY_FULL_GROUP_BY SQL 模式时,查询中包含聚合函数(例如,SUM()COUNT())而没有对所有非聚合列进行分组。ONLY_FULL_GROUP_BY 模式要求所有非聚合列都必须在 GROUP BY 子句中进行分组,否则会报错。

解决方法

要解决此错误,有两种方法:

方法 1:修改 SQL 模式

可以通过修改 MySQL 配置文件(通常为 /etc/mysql/my.cnf)中的 sql_mode 设置来禁用 ONLY_FULL_GROUP_BY 模式。将 sql_mode 设置为以下值之一:

  • STRICT_TRANS_TABLES
  • NO_ENGINE_SUBSTITUTION
  • ANSI
  • TRADITIONAL

更改 sql_mode 后,重新启动 MySQL 服务。

方法 2:修改查询

如果不想修改 SQL 模式,则可以修改查询以使其与 ONLY_FULL_GROUP_BY 兼容。有两种方法可以做到这一点:

  • 对所有非聚合列进行分组:将所有未在 GROUP BY 子句中明确保含的非聚合列添加到 GROUP BY 子句中。
  • 使用子查询:将聚合查询放在内部子查询中,然后使用外部查询对子查询结果进行分组。子查询将确保对所有非聚合列进行隐式分组。

示例

错误查询:

SELECT SUM(salary)
FROM employees;

方法 1:修改 SQL 模式

# 在 my.cnf 中将 sql_mode 设置为 ANSI
[mysqld]
sql_mode=ANSI

方法 2:修改查询(对所有非聚合列进行分组)

SELECT SUM(salary)
FROM employees
GROUP BY department;

方法 2:修改查询(使用子查询)

SELECT SUM(salary)
FROM (
    SELECT department, salary
    FROM employees
) AS subquery
GROUP BY department;

以上就是Mysql8报错this is incompatible with sql_mode=only_full_group_by问题的详细内容,更多请关注编程学习网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql8报错this is incompatible with sql_mode=only_full_group_by问题

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Mysql8报错this is incompatible with sql_mode=only_full_group_by问题

MySQL8中“thisisincompatiblewithsql_mode=only_full_group_by”错误提示指在ONLY_FULL_GROUP_BY模式下,未对所有非聚合列进行分组。解决方法包括:修改sql_mode设置为兼容模式或调整查询,如对所有非聚合列分组或使用子查询隐式分组。
Mysql8报错this is incompatible with sql_mode=only_full_group_by问题
2024-04-02

mysql5.7 gruop by报错this is incompatible with sql_mode=only_full_group_by

解析:在mysql 工具 搜索或者插入数据时报下面错误:ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated
2019-12-03

MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法

目录这个就是错误截图出现原因: mysql的版本问题解决办法:两种第一种:修改MySQL的配置文件第二种方法:修改自己的sql总结这个就是错误截图出现原因: MySQL的版本问题MySQL 5.7.5以上版本,实现了对功能依赖的检测。如果
2023-02-17

MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法

mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错,下面这篇文章主要给大家介绍了关于MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法,需要的朋友可以参考下
2023-02-17

SQL 报错 sql_mode=only_full_group_by 问题

SQL 报错 sql_mode=only_full_group_by 问题 原因分析 一、原理层面 这个错误发生在mysql 5.7.5 版本及以上版本会出现的问题: mysql 5.7.5版本以上默认的sql配置是:sql_mode=
2023-08-21

MySQL报错:sql_mode=only_full_group_by 4种解决方法含举例,轻松解决ONLY_FULL_GROUP_BY的报错问题

​ 作为初学者,我们在使用MySQL的时候总是会遇到各种各样的报错,让人头痛不已。其中有一种报错,sql_mode=only_full_group_by,十分常见,每次都是老长的一串出现,然后带走你所有的好心情。 ​​ 出现这样的报错,并不
2023-08-17

ORA-15300: File string is incompatible with this operation ORACLE 报错 故障修复 远程处理

文档解释ORA-15300: File string is incompatible with this operationCause: The file type was incompatible with the
ORA-15300: File string is incompatible with this operation ORACLE 报错 故障修复 远程处理
2023-11-05

如何解决Vue插件报错:Vue.js is detected on this page.问题

这篇文章主要介绍了如何解决Vue插件报错:Vue.js is detected on this page.问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Vue插件报错:V
2023-06-20

编程热搜

目录