sql語句中出現group by 報錯sql_mode=ONLY_FULL_GROUP_BY的解決方案


1、查看sql_mode

select @@sql_mode
查詢出來的值為:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
2、去掉ONLY_FULL_GROUP_BY,重新設置值。

 

 
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';
3、上面是改變了全局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';
以上所述是小編給大家介紹的MySql版本問題sql_mode=only_full_group_by的完美解決方案,希望對大家有所幫助.

===========================================================

有同學提出上邊這種方式數據庫重啟后 設置會失效,確實是這樣的,上邊這種方式只是修改了內存中的值,不能永久改變。

想要永久解決問題需要在配置文件中

[mysqld]下面添加這段

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  
windows 在安裝目錄下的my.ini 文件
Mac 或者Linux 在/ etc/my.cnf 下面應該是

總之就是在個人mysql配置文件中修改

 

https://blog.csdn.net/qq_27828675/article/details/80304274


免責聲明!

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



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