今天我一个好友 KakiNakajima 遇到一个问题,大概如下:
select 字段A , 字段B from 表C group by 字段A;
功能环境执行上述语句时,报错1055,但是他本地环境连接测试数据库时执行该语句不报错
原因:
这个其实在ORACLE 的话就不会有这个疑问,因为使用group by 分组后,select 后面的字段就只能是分组的字段或者使用聚合函数获取的字段(如max min等),oracle是有这个规定的。但是mysql 在一些旧版本中没有该规定,所以执行不会报错,但是运作比较不好,这个朋友本地测试数据库的版本是5.7.16 , 而功能环境的数据库版本是5.7.21,mysql在5.7.X版本(具体版本号不清楚,大概是16到21之间)添加了关于group by 分组的规定,查询字段有限制,所以才会出现上述本地执行没问题,功能环境执行报错的尴尬情况