PHP中文网2017-04-17 16:19:16
正常select后面的字段只能是group by中的字段或者是聚合函数,例如:
select a,max(b) from t group by a;
但你会发现,有时别人的mysql是这样写的,
select a,b,max(c) from t group by a;
为什么别人不报错呢?
注意看下报错提示的最后一句sql_mode=only_full_group_by
sql_mode是用来检查SQL语句的合法性,当配置为only_full_group_by时,select字段要么是来自于聚集函数的结果,要么是来自于group by后中的字段值。
因此,如果你想保证原来sql正常执行,可以去修改下my.cnf的配置,把sql_mode=only_full_group_by注释掉,在前面加#号