当前位置: 代码迷 >> 综合 >> MySQL异常ERROR 1055 (420ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause
  详细解决方案

MySQL异常ERROR 1055 (420ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause

热度:96   发布时间:2023-12-12 08:30:06.0

大致错误如:ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘aaa.test.age’ which is not functionally dependent on columns in GROUP BY clause;
this is incompatible with sql_mode=only_full_group_by

一般是执行类似如下语句报错:

mysql> select * from customers group by age;

解决方法:

1、登陆mysql服务器,执行以下两条命令,在global与session级都修改;

mysql> set global 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> set session sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;

2、同时,在my.cnf文件的[mysqld]字段中,指定sql_mode的值:

[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

——————————————————————————————————
注:我只修改了第1步即可成功执行了
原文链接:https://www.cnblogs.com/weiyiming007/p/10025181.html

  相关解决方案