查mysql文档得知,mysql从5.7.5开始默认开启ONLY_FULL_GROUP_BY:
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中。
解决方法
1 show variables like "sql_mode"; 2 set sql_mode=''; 4 set sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';
本文探讨了MySQL5.7.5版本中默认开启的ONLY_FULL_GROUP_BY特性,该特性要求SELECT子句中的所有列必须出现在GROUP BY子句中,否则SQL语句将被视为不合法。文章提供了检查当前sql_mode设置的方法,并给出了两种禁用ONLY_FULL_GROUP_BY的解决方案。
查mysql文档得知,mysql从5.7.5开始默认开启ONLY_FULL_GROUP_BY:
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中。
1 show variables like "sql_mode"; 2 set sql_mode=''; 4 set sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';
2880
251
1602
560

被折叠的 条评论
为什么被折叠?