MySQL錯誤-this is incompatible with sql_mode=only_full_group_by完美解決方案

裸奔到月球發表於2024-03-16

解決方案一:使用函式ANY_VALUE()包含報錯欄位

SELECT ANY_VALUE(ID),USER_ID,ANY_VALUE(problems),ANY_VALUE(last_updated_date) FROM  t_iov_help_feedback GROUP BY USER_ID;

解決方案二:透過sql語句暫時性修改sql_mode

去掉ONLY_FULL_GROUP_BY,重新設定

SET @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
重啟mysql資料庫服務之後,ONLY_FULL_GROUP_BY還會出現,所以這只是暫時性的。

解決方案三:透過配置檔案永久修改sql_mode

2)編輯my.cnf檔案
檔案地址一般在:/etc/my.cnf,/etc/mysql/my.cnf
使用vim命令編輯檔案,不知道vim命令怎麼使用的,可以參考我的另外篇文章:Linux中使用vi工具進行文字編輯
找到sql-mode的位置,去掉ONLY_FULL_GROUP_BY
然後重啟MySQL;
有的my.cnf中可能沒有sql-mode,需要追加:

sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

修改成功後重啟MySQL服務

service mysql restart

重啟好後,再登入mysql,輸入SQL:show variables like ‘%sql_mode’; 如果沒有ONLY_FULL_GROUP_BY,就說明已經成功了。

 


————————————————

版權宣告:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。

原文連結:https://blog.csdn.net/u012660464/article/details/113977173

 

相關文章