这不是SQL标准的行为。
12.16.3 MySQL对GROUP BY的处理
要禁用MySQL GROUP BY扩展并启用标准SQL行为,请启用ONLY_FULL_GROUP_BY SQL模式
。在这种情况下,除非包含在聚合函数中,否则不能在选择列表或HAVINg子句中使用GROUP BY子句中未命名的列。
看起来在第二台服务器上您具有激活
ONLY_FULL_GROUP_BY模式。
SELECt @@sql_mode;
您可以在以下行为上模拟这种行为
MySQL 5.5:
SET SESSION sql_mode = 'ONLY_FULL_GROUP_BY';SELECT *FROM tabGROUP BY col;-- tab.col2' isn't in GROUP BY
**[SqlFiddleDemo
](http://sqlfiddle.com/#!9/558433/3/2)**
从MySQL 5.7:
已经使ONLY_FULL_GROUP_BY SQL模式的实现更加复杂,不再拒绝以前被拒绝的确定性查询。
因此,现在默认情况下启用ONLY_FULL_GROUP_BY,以禁止包含不确定保证在组内唯一确定的表达式的不确定查询。



