mysql5.7 以上版本會出現這個問題
only_full_group_by 的意思是:對於GROUP BY聚合操作,如果在SELECT中的列,沒有在GROUP BY中出現,那麼這個SQL是不合法的,因爲列不在GROUP BY從句中,也就是說查出來的列必須在group by後面出現否則就會報錯,或者這個字段出現在聚合函數裏面。其實這個配置感覺和distinct差不多的,所以去掉就好
命令行輸入:
set @@GLOBAL.sql_mode='';
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
默認關掉ONLY_FULL_GROUP_BY!
這個時候再用select 一下,
SELECT @@sql_mode;
SELECT @@GLOBAL.sql_mode;
發現已經不存在ONLY_FULL_GROUP_BY ,感覺已經OK。但是如果你重啓Mysql服務的話,發現ONLY_FULL_GROUP_BY還是會存在的!