Mysql case when 語句不兼容only_full_group_by問題解決記錄

問題背景:

 

項目執行 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章