Mysql报错1055
Mysql group by报错 1055
[Err] 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘xm_xhd.al.dy_uid’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
**
错误原因:
**在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报错1055相关推荐
- 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 ...
- MySQL 报错1055
一.问题描述 SELECT * FROM tbluser GROUP BY sex 当我以这条语句进行数据库查询的时候,报了个错: > 1055 - Expression #1 of SEL ...
- MySQL 报错 1055
具体报错 [2019-02-20 11:57:36] [42000][1055] Expression #1 of SELECT list is not in GROUP BY clause and ...
- MySQL报错1055解决办法
最近在mysql 8.0.15版本中发现一个问题,在执行完sql语句后报错:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP ...
- mysql8.0 新特性 sql_mode(mysql 报错1055)
问题描述 因为开发环境和正式环境所使用的mysql数据库的版本不一样,开发环境使用的时候5.7而正式环境使用的是8.0,而在Mysql的8.0版本中默认是开启sql_mode = only_full_ ...
- MYSQL数据库报错 1055
MYSQL数据库报错 1055 今天在做毕业设计,当点开要查看的视图的时候,爆出了1055的错,该错误如下: 错误原因:在MySQL5.7之后,sql_mode中默认存在ONLY_FULL_GROUP ...
- mysql 报错解决思考Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column
mysql报错: [Err] 1055 - Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggrega ...
- mysql1055_MySQL5.7 group by新特性报错1055的解决办法
项目中本来使用的是mysql5.6进行开发,切换到5.7之后,突然发现原来的一些sql运行都报错,错误编码1055,错误信息和sql_mode中的"only_full_group_by&qu ...
- mysql 报错 get error 28 from storage engine 解决方法
mysql 报错 get error 28 from storage engine 解决方法 参考文章: (1)mysql 报错 get error 28 from storage engine 解决 ...
最新文章
- 2021年大数据Hive(十二):Hive综合案例!!!
- 图片资源 php,php图片转为资源数据
- Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果
- OC中protocol、category和继承的区别
- flutter 图片路径_【Flutter开发工具推荐】Flutter资源管理利器:Flr
- Java基础 集合(Collection)结构详解 Collection和Collections的区别
- 01-Swift 介绍
- android快捷开发之Retrofit网络加载框架的简单使用
- Opencl cl_khr_fp16
- 解决layui laydate动态创建多个时不起作用点击无效的问题
- 什么舱位_把“订舱位”说成book warehouse position,外企不会要你
- Spring Cloud Stream与RabbitMQ 死信队列
- Speaker Recognition: Gaussian probabilistic LDA (PLDA)理解
- Jmeter集成Jira提交缺陷
- 3DMAX 的重要知识和插件介绍
- 网易云计算机系统有限公司,网易云音乐官方电脑版
- web前端面试题总结
- 2021-07-06
- 前端经典面试题(持续更新)
- arukas.io免费搭建个人私有***方式