報錯信息:
翻譯:
對該報錯的解釋
所以,實際上該報錯是由于在SQL查詢語句中有group by,而這個包含group by的SQL查詢寫的并不規范導致的,這個ONLY_FULL_GROUP_BY模式開啟之后檢查就會很嚴格,如果select列表中包含非聚合列或者包含不在group by后面的列的時候,又開啟了該模式,就會報錯。
解決方案
- 寫規范
- 臨時關閉該模式
打開MySQL客戶端直接輸入以下命令:
set @@GLOBAL.sql_mode='';
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
- 永久關閉該模式
在/etc/mysql/mysql.conf.d/mysqld.cnf 文件添加以下內容,來永久關閉
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"