关于mysql使用group by分组的时候的出现的错误异常

出现的问题:

在使用group by的函数的时候遇到了这么一个问题,就是会直接执行错误,(Expression #。。。。。。。with sql_mode=only_full_group_by),像这个样子

造成这样的原因主要是mysql5.7版本之后,sql_mode中ONLY_FULL_GROUP_BY模式默认设置为打开状态,如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们,而ONLY_FULL_GROUP_BY的语义的意思就是group by 是通过函数去分组的,比如说group by max(id)啊之类的去分组的,直接通过某个字段去分组就会不符合这个检索的规则

看过了很多博客教程,千篇一律的都是让修改mysql的配置,可是在开发中把每个服务器的mysql配置都修改是不现实的,对应这种问题肯定是有解决方案的,最终还是找到了解决的方案(如下)

解决方案:

在会出现不同数据的字段下都使用ANY_VALUE包含

SELECT 不会出现相同数据的字段一,ANY_VALUE(会出现不同数据的字段二),ANY_VALUE(会出现不同数据的字段三),ANY_VALUE(会出现不同数据的字段四)
 FROM 表 GROUP BY 字段一

通过这样的话就会选择同一条数据里面的第一条数据了做为放回值了

详情请看官网有介绍:

官网:https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html

关于mysql使用group by分组的时候的出现的错误异常_第1张图片

你可能感兴趣的:(mysql)