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