记mysql5.7错误only_full_group_by

错误截图为上
mysql版本:5.7.35-0ubuntu0.18.04.1
"this is incompatible with sql_mode=only_full_group_by"错误解决方案
前言:
一、原理层面
这个错误发生在mysql 5.7 版本及以上版本会出现的问题:
mysql 5.7版本默认的sql配置是:sql_mode="ONLY_FULL_GROUP_BY",这个配置严格执行了"SQL92标准"。
很多从5.6升级到5.7时,为了语法兼容,大部分都会选择调整sql_mode,使其保持跟5.6一致,为了尽量兼容程序。
二、sql层面
在sql执行时,出现该原因:
简单来说就是:输出的结果是叫target list,就是select后面跟着的字段,还有一个地方group by column,就是
group by后面跟着的字段。由于开启了ONLY_FULL_GROUP_BY的设置,所以如果一个字段没有在target list
和group by字段中同时出现,或者是聚合函数的值的话,那么这条sql查询是被mysql认为非法的,会报错误。
二、解决方案
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
在/etc/mysql/mysql.conf.d/mysqld.cnf中[mysqld]下插入上面变量
重启mysql服务,顺利解决
记mysql5.7错误only_full_group_by的更多相关文章
- MYSQL5.7 sql_mode=only_full_group_by
错误提示: .... which is not functionally dependent on columns in GROUP BY clause; this is incompatible w ...
- 记一次错误排查,主要问题是跨平台文件中换行符(CRLF, LF)和垃圾字符( Caret Notation)
笔者测试SPEC14的workload的时候,需要自定义workload,又需要在Windows和Linux平台上都要测试,所以就遇到了这么个问题:测试工具报错,但是报出来的错误信息又跟错误对不上. ...
- 记一次错误 POST http://127.0.0.1:8000/auth/signup/ 500 (Internal Server Error)
错误环境: 1,ajax 发送 post 请求调用 views 的视图 xfzajax.post({ 'url': '/xfzauth/signup/', 'data': { 'telephone': ...
- 记一次错误:mid=front+(rear-front)>>1;
设rear=6,front=4,mid=front+(rear-front)>>1; mid应该等于5的,但结果却是3. 错误原因:"+"运算符的优先级高于" ...
- 记一个eclipse 错误 Undefined variable from import: randrange
我自己定义了一个random.py 和pev的包含路径一样的 解决办法是: 出现这种问题,可以import 这个模块,print 这个模块
- 记一个Java错误 1 -- Unsupported major.minor version 52.0
今天打开ADT eclipse 准备调试上周的安卓项目, 发现总是报错 如图: 百度了一下说是 jdk版本过低的问题 (低版本的jre运行高版本project) 于是就修改了一下 window - ...
- 记JS一个错误,
在定义变量时候,如果直接定义 var obj=null;那么,在转码时候,比如转为base64,此时或出现特殊的文字(也是汉字,只是很少见少用的文字,而且,出现的文字是根据你给obj赋值决定的,) 由 ...
- MySQL5.7 group by新特性,报错1055
项目中本来使用的是mysql5.6进行开发,切换到5.7之后,突然发现原来的一些sql运行都报错,错误编码1055,错误信息和sql_mode中的"only_full_group_by&qu ...
- ArcMap上发布地图服务前,“将图形转为要素的选项”时报“输出名称无效”错误
发布ArcMap服务时,由于矢量图中包含“文本标注”. 发布矢量图服务时,报了一个“00017: 数据框中至少有一个包含图形的已启用注记组”的错误,如下图: 官网给出的解决办法如下:http://re ...
随机推荐
- docker平时使用异常记录
GPU主机重启后,启动使用GPU的容器报错 docker: Error response from daemon: Unknown runtime specified nvidia. 解决办法:修改/ ...
- 从零开始学mitmproxy抓包工具
Man In The Middle mitm是Man In The Middle的首字母缩写,意思是位于中间的人,表明mitmproxy是一个代理,可以拦截请求,实现网络抓包.知名的网络抓包工具有Fi ...
- Memory Management in Rust
程序在运行时需要请求操作系统分配内存以及释放内存,因此,程序员在编写程序时,需要显式(手动)地编写分配和释放内存的代码,或者隐式(自动,由语言保证)地进行内存管理.对于前者,C/C++ 是代表语言,程 ...
- Solution -「BZOJ 4316」小C的独立集
\(\mathcal{Description}\) Link. 求包含 \(n\) 个结点 \(m\) 条边的仙人掌的最大独立集. \(n\le5\times10^4\),\(m\le6\ ...
- ASP.NET Core 6框架揭秘实例演示[05]:依赖注入基本编程模式
毫不夸张地说,整个ASP.NET Core就是建立在依赖注入框架之上的.ASP.NET Core应用在启动时构建管道所需的服务,以及管道处理请求使用到的服务,均来源于依赖注入容器.依赖注入容器不仅为A ...
- CentOS8安装启用telnet服务
CentOS8默认只安装telnet的客户端,其服务端telnet-server由于安全原因由用户自主选择安装.下面为实践安装启动telnet-server,注意其与vsftp服务安装的异同. 1.查 ...
- 异常Java
异常 1.什么是异常 异常指程序运行过程中出现的不期而至的各种状况,如:文件找不到.网络连接失败等 异常发生在程序运行期间,它影响了正常的程序执行流程 public class Demo01 { pu ...
- web渗透绕过
////目录: 403 IP地址绕过与文件名绕过 登录框绕过 SQL注入绕过 文件上传绕过 RCE绕过 403 IP地址绕过与文件名绕过 X-Forwarded-For:127.0.0.1 X-For ...
- Wireshark教程之高级功能
实验目的 1.工具介绍 2.主要应用 实验原理 1.网络管理员用来解决网络问题 2.网络安全工程师用来检测安全隐患 3.开发人员用来测试执行情况 4.学习网络协议 实验内容 1.数据流追踪功能 2.协 ...
- 为什么用Python,高级的Python是一种高级编程语言
Python特性 如果有人问我Python最大的特点是什么,我会毫不犹豫地告诉他:它简单易学,功能强大.作为一个纯自由软件,Python有许多优点: 很简单.基于"优雅".&quo ...