報錯原因:
在mysql8.0以上的版本中,對於 group by 的這種聚合操作,如果在select 中的列,沒有在group by 中出現,那麼這個SQL是不合法的,因爲列不在group by的從句中,所以對於默認設置了sql_mode=only_full_group_by的數據庫,在使用group by 的時候,就要在select後使用MAX(),SUM(),ANT_VALUE()的這種聚合函數,才能完成GROUP BY 的聚合操作。
解決方案:
WIN10的my.ini下新增如下配置(我的目錄是:C:\Program Files\MySql\mysql-8.0.17-winx64下的my.ini):
# sql模式設置
sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
重啓mysql後在客戶端查詢 select @@sql_mode;
如下圖:
至此問題解決!