MySQL问题解决: only_full_group_by

mysql:查询报错:


Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ruize_erp.me.bar_code' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

原因: MySQL 配置中 sql_mode 默认配置了only_full_group_by,这样的话需要 GROUP BY 中包含所有 在 SELECT 中出现的字段。

解决方法:

1 重写SQL符合规范。

2.运行SQL语句临时去掉ONLY_FULL_GROUP_BY配置。


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之后,配置会自动还原。

3.更改mysql的配置文件永久生效

# 一般在/usr/local/etc下

sudo nano /usr/local/etc/my.cnf

#修改sql_mode的值为方法2的sql值。