错误信息:
Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.tbl.xxx' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 0.000 sec
select 的字段只能是group by的字段,或者是聚合函数。
在 oracle 中,一直有这项规定。所以直接就会报错。
但在mysql中对于5.7之后的版本才做了相应的限制。
那么这个错误有两种解决方案,一种是修改sql语句(这个根据自身情况修改)
第二种是修改限制条件(如果只是为了能够正常运行这种就足够了)
-- 查看sql_mode
select @@sql_mode;
-- 根据查询结果去掉ONLY_FULL_GROUP_BY,然后把剩下的内容赋值给sql_mode就可以了
set @@global.sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'