问题原因:
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