mysql 查询报错Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column

发布时间 2023-11-10 13:35:56作者: qsnfjwjrzm

这个错误是由于 MySQL 的新版本中默认开启了ONLY_FULL_GROUP_BY模式,即在 GROUP BY 语句中的 SELECT 列表中,只能包含分组或聚合函数,不能包含其他列。而你的查询语句中出现了一个列senior_two.score.student_id,它既没有被分组也没有被聚合,因此 MySQL 报出了这个错误。

5.7版本以下不会出现。5.7以上会出现这个问题,每个sql改不现实,所以我们可以通过配置文件关闭

在 数据库配置文件【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

重启mysql 即可 service mysqld restart;