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相关推荐

  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 ...

  2. MySQL 报错1055

    一.问题描述 SELECT * FROM tbluser GROUP BY sex   当我以这条语句进行数据库查询的时候,报了个错: > 1055 - Expression #1 of SEL ...

  3. MySQL 报错 1055

    具体报错 [2019-02-20 11:57:36] [42000][1055] Expression #1 of SELECT list is not in GROUP BY clause and ...

  4. MySQL报错1055解决办法

    最近在mysql 8.0.15版本中发现一个问题,在执行完sql语句后报错:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP ...

  5. mysql8.0 新特性 sql_mode(mysql 报错1055)

    问题描述 因为开发环境和正式环境所使用的mysql数据库的版本不一样,开发环境使用的时候5.7而正式环境使用的是8.0,而在Mysql的8.0版本中默认是开启sql_mode = only_full_ ...

  6. MYSQL数据库报错 1055

    MYSQL数据库报错 1055 今天在做毕业设计,当点开要查看的视图的时候,爆出了1055的错,该错误如下: 错误原因:在MySQL5.7之后,sql_mode中默认存在ONLY_FULL_GROUP ...

  7. 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 ...

  8. mysql1055_MySQL5.7 group by新特性报错1055的解决办法

    项目中本来使用的是mysql5.6进行开发,切换到5.7之后,突然发现原来的一些sql运行都报错,错误编码1055,错误信息和sql_mode中的"only_full_group_by&qu ...

  9. mysql 报错 get error 28 from storage engine 解决方法

    mysql 报错 get error 28 from storage engine 解决方法 参考文章: (1)mysql 报错 get error 28 from storage engine 解决 ...

最新文章

  1. 2021年大数据Hive(十二):Hive综合案例!!!
  2. 图片资源 php,php图片转为资源数据
  3. Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果
  4. OC中protocol、category和继承的区别
  5. flutter 图片路径_【Flutter开发工具推荐】Flutter资源管理利器:Flr
  6. Java基础 集合(Collection)结构详解 Collection和Collections的区别
  7. 01-Swift 介绍
  8. android快捷开发之Retrofit网络加载框架的简单使用
  9. Opencl cl_khr_fp16
  10. 解决layui laydate动态创建多个时不起作用点击无效的问题
  11. 什么舱位_把“订舱位”说成book warehouse position,外企不会要你
  12. Spring Cloud Stream与RabbitMQ 死信队列
  13. Speaker Recognition: Gaussian probabilistic LDA (PLDA)理解
  14. Jmeter集成Jira提交缺陷
  15. 3DMAX 的重要知识和插件介绍
  16. 网易云计算机系统有限公司,网易云音乐官方电脑版
  17. web前端面试题总结
  18. 2021-07-06
  19. 前端经典面试题(持续更新)
  20. arukas.io免费搭建个人私有***方式

热门文章

  1. 工控网络安全性测试解决方案
  2. 实时获取股票数据,免费!——Python爬虫Sina Stock实战
  3. Java笔试题(二)多选题
  4. Sketch 快捷键速记表(中英对照)
  5. 小程序坑录-wx.getLocation接口申请
  6. 从MDK分散加载文件学习STM32启动流程
  7. NoSQL和MemeryCache的出现意味着传统数据库使用方式的变革吗?(arvin-推荐--看评论)
  8. linux notifier的理解和应用
  9. Codeforces 1089K King Kog's Reception(线段树)
  10. 京东深圳手Q微信事业部测试工程师面试总结