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時,selectgroup_by時,selectgroup要不是來自於集合函數的結果,或是來自於group by後中的字段值。
因此,如果你想確保原來sql正常執行,可以去修改下my.cnf的配置,把sql_mode=only_full_group_by註解掉,前面加#號