在使用 GROUP BY 时,我们可能会遇到以下报错:
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ……
这是因为我们在select语句中所查询的列并不被group by后面接的列所包含。
对于GROUP BY聚合操作,SELECT后面接的列必须被GROUP BY后面接的列所包含。
例如:
select a,b from table GROUP BY a,b,c; √
select a,b from table GROUP BY a; ×
解决方法:去掉 ONLY_FULL_GROUP_BY
步骤:
1、关闭 MySQL 数据库服务
打开服务(直接在搜索栏搜索)
找到 MySQL,停止服务
2、打开MySQL 的 ini 配置文件
找到MySQL 下载的文件夹,进入 my.ini
找到 sql-mode 行,把开头的 ONLY_FULL_GROUP_BY 删除,其他的都不要动
然后点击保存
3、重启 MySQL服务
找到刚刚的服务,重新启动MySQL服务,就可以使用了!
select a,b from table GROUP BY a,b,c; √
select a,b from table GROUP BY a; √
修改后,两种情况就都可以使用了。