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

MYSQL5.7版本sql_mode=only_full_group_by问题

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

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

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

看不清楚,换张图片

免费获取短信验证码

MYSQL5.7版本sql_mode=only_full_group_by问题

下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了。

一旦开启 only_full_group_by ,感觉,group by 将变成和 distinct 一样,只能获取受到其影响的字段信息,无法和其他未受其影响的字段共存,这样,group by 的功能将变得十分狭窄了

only_full_group_by 模式开启比较好。

因为在 mysql 中有一个函数: any_value(field) 允许,非分组字段的出现(和关闭 only_full_group_by 模式有相同效果)。

具体出错提示:

[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column "information_schema.PROFILING.SEQ" which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

查看sql_mode

select @@global.sql_mode;

查询出来的值为:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

去掉ONLY_FULL_GROUP_BY,重新设置值。

set @@global.sql_mode ="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";

上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行:

set sql_mode ="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";

解决办法大致有两种: 一:在sql查询语句中不需要group by的字段上使用any_value()函数

这种对于已经开发了不少功能的项目不太合适,毕竟要把原来的sql都给修改一遍

二:修改my.cnf(windows下是my.ini)配置文件,删掉only_full_group_by这一项

若我们项目的mysql安装在ubuntu上面,找到这个文件打开一看,里面并没有sql_mode这一配置项,想删都没得删。

当然,还有别的办法,打开mysql命令行,执行命令

select @@sql_mode;

这样就可以查出sql_mode的值,复制这个值,在my.cnf中添加配置项(把查询到的值删掉only_full_group_by这个选项,其他的都复制过去):

sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;

如果 [mysqld] 这行被注释掉的话记得要打开注释。然后重重启mysql服务

注:使用命令

set sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

这样可以修改一个会话中的配置项,在其他会话中是不生效的。

免责声明:

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

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

MYSQL5.7版本sql_mode=only_full_group_by问题

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

下载Word文档

猜你喜欢

MYSQL5.7版本sql_mode=only_full_group_by问题

下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了。一旦开启 only_full_group_by ,感觉,group by 将变成
2016-08-03

解决MySql版本问题sql_mode=only_full_group_by

目录mysql版本问题sql_mode=only_full_group_byWindowssql_mode=only_full_group_by以及多种解决方案出错的sql情况解决方案1解决方案2MySql版本问题sql_mode=only
2022-11-19

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

目录运行环境系统运行出现的问题上度娘查询的结果提供两个解决方案方案一(只适合暂时解决性的,mysql 重启就一朝回到解放前了)方案二(修改mysql 中的配置文件,达到当重启mysql 回去制动加载配置文件的内容)总结运行环境linux
解决mysql @@sql_mode问题---only_full_group_by
2024-09-04

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版本因为sql_mode设置导致的问题以及解决

目录mysql5.7版本因为sql_mode设置导致的问题尝试解决方法一方法二关于sql_mode总结mysql5.7版本因为sql_mode设置导致的问题因为重新安装了环境,想把之前的数据库导入到新库里面,结果就报了如下错误: [E
mysql5.7版本因为sql_mode设置导致的问题以及解决
2024-09-07

mysql ONLY_FULL_GROUP_BY设置sql_mode无效排查问题(windows)

目录mysql ONLY_FULL_GROUP_BY设置sql_mode无效排查1.查询SQLMODE2.临时修改sql-mode执行SQL3.永久修改sql-mode总结mysql ONLY_FULLjs_GROUP_BY设置sql_mo
mysql ONLY_FULL_GROUP_BY设置sql_mode无效排查问题(windows)
2024-09-07

Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法

近期在开发过程中,因为项目开发环境连接的mysql数据库是阿里云的数据库,而阿里云的数据库版本是5.6的。而测试环境的mysql是自己安装的5.7。因此在开发过程中有小伙伴不注意写了有关group by的sql语句。在开发环境中运行是正常的
2022-05-24

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

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

QT3与QT4版本的问题

从在QT中找不到QVBOX类到QT4与QT3的兼容(转载)    在http://www.qiliang.net/qt/tutorial1-03.html上学习qt技术,但是在用到第三个实例的时候就发现好多东西用不了了,后来一查才发现,这个
2023-01-31

python 版本问题,导致ansibl

[root@ansible-server ~]# ansible mongodb -m copy -a "src=/etc/yum.repos.d/mongodb-org-3.2.repo dest=/etc/yum.repos.d/"SS
2023-01-31

编程热搜

目录