在mysql8.0以上的版本中,对于 group by 的这种聚合操作,如果在select 中的列,没有在group by 中出现,那么这个SQL是不合法的,因为列不在group by的从句中
那么如何解决呢,其实很简单,找到mysql的安装目录,在my.ini文件加入下面代码
[mysqld]
sql_mode=NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
这个位置有个坑.....如果你加入了这行代码重启mysql后出现了下面的报错,那是因为加入的配置有问题。
原因
mysql 8.0之后不支持NO_AUTO_CREATE_USER服务
要在设置sql_mode中删除NO_AUTO_CREATE_USER,删除后即可重启
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION