首页 > 数据库技术 > 详细

SELECT列表的表达式不在GROUP BY子句中,并且包含非聚合列,这与sql_mode = only_full_group_by不兼容

时间:2021-07-17 18:25:43      阅读:15      评论:0      收藏:0      [点我收藏+]

练习中查询分组中最贵的商品报错

技术分享图片

ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘mugua.goods.goods_name‘ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

 错误1055(42000):选择列表的表达式#2不在GROUP BY子句中,并且包含非聚合列的mugua.goods。goods_name‘,它在功能上不依赖于GROUP BY子句中的列;这与sql_mode=only_full_group_by不兼容

网上大多数方法是

解决办法:
1、找到mysql的配置文件 my.ini (一般在mysql根目录)

2、在my.ini 中将以下内容添加到 [mysqld]下

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

3、重启mysql服务!问题解决!

但是我加了我的mysql服务启动不了。

错误的原因是新版本的mysql是严格模式,此时需要把严格模式改为普通模式

通过配置文件修改:

在my.ini 中将以下内容添加到 [mysqld]下

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

严格模式主要用以下场景

    • 不支持对not null字段插入null值
    • 不支持对自增长字段插入”值
    • 不支持text字段有默认值

SELECT列表的表达式不在GROUP BY子句中,并且包含非聚合列,这与sql_mode = only_full_group_by不兼容

原文:https://www.cnblogs.com/goodgongdstudy/p/15023594.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!