mysql中GROUP BY時報錯sql_mode=only_full_group_by錯誤


今天在上正式數據服務器測試軟件時突然發生了sql_mode的報錯: sql_mode=only_full_group_by。之前在本地庫的時候沒有遇到過一臉懵逼,在查閱了資(bai)料(du)之后才明白原來是數據庫版本為5.7以上的版本,默認是開啟了 only_full_group_by 模式的,但開啟這個模式后,原先的 group by 語句就報錯。

首先使用以下查詢語句查詢是否含有only_full_group_by:

select @@GLOBAL.sql_mode;

然后使用如下sql語句進行sql_mode的更新,去除掉only_full_group_by:

set  @@GLOBAL.sql_mode='';

set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';

這樣更新之后在不進行服務器重啟時可以一直使用,但是一旦服務器重啟之后將會回歸原來的樣子only_full_group_by一樣的存在。

所以對此我們需要對mysql的配置文件my-default.ini (或者my.cnf)進行修改,在里面的[mysqld]下面添加

sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION

實圖如下:

 

這樣即使重啟服務器那么sql_mode一樣的不會含有only_full_group_by了,這樣就OK了

 --------------------------------------------------------------------------------------分割線-------------------------------------------------------------------------------------------------------------------

個人使用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM