MySQL-[Err] 1055 - Expression #1
问题描述:在MySQL数据库下,执行SQL插入语句报错。错误信息如下:
错误原因:在MySQL5.7之后,sql_mode中默认存在ONLY_FULL_GROUP_BY,SQL语句未通过ONLY_FULL_GROUP_BY语义检查所以报错。
ONLY_FULL_GROUP_BY:ONLY_FULL_GROUP_BY要求select语句中查询出来的列必须是明确的(其他语句也是一样)。
以SQL语句select columes from table group by list为例:columns必须是聚集函数或者在group by后的表达式list中,并且list中必须包含主键,否则也会报错。
insert、update、delete语句都会报错(但不影响SQL语句的执行),因为这三种语句执行之前也会执行查询操作。
以主键为id的表为例:
SELECT count(1) FROM customer GROUP BY `name`;该SQL执行成功,因为count是聚集函数;
SELECT * FROM customer GROUP BY `name`;该SQL执行失败,因为*中包含主键id,而group by后的表达式中并没有包含id
SELECT name FROM customer GROUP BY `name`;该SQL执行成功,因为name包含在group by后的表达式中
SELECT name, contact FROM customer GROUP BY `name`;该SQL执行失败,因为contact没有包含在group by后的表达式中
解决方案:
一、永久解决
1)在MySQL下执行SELECT @@sql_mode语句
2)将查询结果中的ONLY_FULL_GROUP_BY去掉然后复制,打开MySQL的配置文件,将sql_mode的值设置为复制的值
(若没有sql_mode在[mysqld]下方添加一行即可)。
MySQL配置文件所在位置:安装版可通过windows服务所对应mysql启动项,查看其对应属性->可执行文件路径,获取my.ini路径。
免安装版一般在其根目录下。(默认是my-default.ini,必须将名字改为my.ini才能生效)
3)重新MySQL服务即可生效
二、只在当前会话中解决,重新进入MySQL后失效
1)在MySQL下执行SELECT @@sql_mode语句
2)将查询结果中的ONLY_FULL_GROUP_BY去掉然后复制,然后执行set sql_mode = '修改后的值'
三、只在当前服务中解决,重新MySQL服务后失效
1)解决方式同方法二,只是在select和set时添加global关键字。具体可查看下图
MySQL-[Err] 1055 - Expression #1相关推荐
- MySQL报错1055解决办法:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains
[mysql报错1055 报错解决办法][Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and cont ...
- 执行sql语句提示[Err] 1055 - Expression #2 of SELECT list is not in GROUP BY......错误的解决办法
当我在navicat中执行sql语句时,出现错误提示[Err] 1055 - Expression #2 of SELECT list is not in GROUP BY clause and co ...
- [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated
mysql客户端查询报这个错误,如下所示: [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and co ...
- [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c
[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c ...
- Mysql err 1055
目录: 错误信息 原因分析 解决方案 操作示例 错误信息 [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause ...
- [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated解决
今天在使用MySQL查询时报了一个"[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and c ...
- [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause 的问题 MySQL
show variables like "sql_mode"; set sql_mode=''; set sql_mode='NO_ENGINE_SUBSTITUTION,STRI ...
- sql [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause
解决当时 错误 show variables like "sql_mode";set sql_mode='';set sql_mode='NO_ENGINE_SUBSTITUTIO ...
- linux系统mysql报err1055_MySQL Err 1055的解决
同事在5.7.14的mysql上创建的表,需要在服务器上同步,但是小版本变成了5.7.17(不知道与版本有没有关系) 在Navicat里执行创建表的sql命令时,报错Err 1055 [Err] 10 ...
- mysql创建表报错1055的原因_[Err] 1055
mysql 创建表是出现[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains non ...
最新文章
- java读取文本单词_使用Java计算文本文件中的单词数
- [HNOI2015]落忆枫音
- stm32f103 rtc 获取 日历 时钟
- MySQL迁移到ClickHouse方案
- 基于Android6.0~9.0的适配
- CTS ( 19)---Android 8.1/GO GMS认证
- matlab信号经过瑞利,Matlab关于 BPSK信号通过瑞利信道的误码性能分析的仿真实验....
- 问题解决之——未知usb设备设备描述符请求失败(Jlink驱动)
- 「深度小课堂」如何开发一款属于自己的时尚屏保应用?
- 【软考】系统集成项目管理工程师(四)项目管理一般知识
- 韩顺平循序渐进学java百度云_韩顺平.循序渐进学java从入门到精通视频教程及笔记与源码下载(94讲)...
- 安卓自定义view仿小米商城购物车动画
- 以太坊五周年:从涅槃中苏醒
- 如何录制真人出镜?别急,一篇教会你:真人出镜的ppt怎么录制
- Android BLE HIDS Data ,从问询DB 到写入Android 节点的flow 之五
- 线索二叉树和中序非递归遍历线索化后的二叉树
- 编写解析绝对定向程序matlab,相对定向和绝对定向解析过程(全面).ppt
- Hilary Stagg 不死传说
- 深入理解Lua的闭包:概念和应用
- 一些经典的谷歌面试题
热门文章
- 【机器学习入门】机器学习基础核心算法:贝叶斯分类!(附西瓜书案例及代码实现)...
- GitHub 中文文档正式发布了!激动人心的大好事!
- Swin Transformer 升级,Swin V2:向更大容量、更高分辨率的更大模型迈进
- 腾讯多任务模型MFH
- 即时通讯音视频开发(八):常见的实时语音通讯编码标准
- IM群聊消息如此复杂,如何保证不丢不重?
- 【MCTalk Live】网易对话谷歌:如何成为一个顶50个的A+++++程序员
- 关于假冒网站仿冒网易云信官网相关情况的声明
- 九章算法 | 骑士的最短路线-BFS
- 关于mvc、mvp和mvvm的理解