問題背景:
項目執行 case when + group by 的語句
運行報錯:[2018-12-26 17:50:15] [42000][1055] Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'paydata.edu_syn_hd_ded.CUTTYPE' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
解決:
先查詢sqlmode,嘗試在DataGrip中運行SQL語句,如下
use paydata set sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
但是隻在DataGrip環境中生效,通過mybatis還是報錯。需修改數據庫服務器配置文件:/etc/my.cnf
添加:
sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
保存,重啓mysql服務後生效。
tips:
重啓數據庫服務後,再連接報錯Public Key Retrieval is not allowed
連接url後加參數:allowPublicKeyRetrieval=true