解決方案一:使用函式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