首页 > 数据库技术 > 详细

mysql 执行GROUP BY时报 Expression #1 of SELECT list is not in GROUP BY clause and contains

时间:2021-04-27 22:17:23      阅读:24      评论:0      收藏:0      [点我收藏+]

问题原因:
5.7版本的mysql,mode默认为ONLY_FULL_GROUP_BY。MySQL就会拒绝选择列表、条件或顺序列表引用的查询,这些查询将引用组中未命名的非聚合列,而不是在功能上依赖于它们。
解决办法:
1.查询mode的相关项
show variables like ‘%sql_mode%‘
查询结果

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

2.在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‘
这样问题就解决了,但是发现重启mysql后问题复现

3.找到 my.cnf 文件加入
sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION‘

4.重启mysql问题解决

mysql 执行GROUP BY时报 Expression #1 of SELECT list is not in GROUP BY clause and contains

原文:https://www.cnblogs.com/xingqiang/p/14710903.html

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