group by经常出现的错误
我们在使用group by给数据库中的表分组的时候经常会遇到这样的问题:
error 1055出现的原因
ONLY_FUll_GROUP_BY的意思是:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY语句中,也就是说查出来的列必须是GROUP BY之后的字段,或者这个字段出现在聚合函数里面。
group by 出现错误的解决方法
1、使用ANY_VALUE()函数
select age,any_value(name) from person group by age
2、修改mysql配置my.cnf(windows下面是my.ini),删除only_full_group_by属性,
下面我们通过命令行通过命令进行修改
SELECT @@GLOBAL.sql_mode;
把查询出来的sql_mode中的only_full_group_by删除重新set sql_model = xxxx即可,然后重新启动mysql服务
出现的问题
测试数据库中的数据