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值。