MySQL-"this is incompatible with sql_mode=only_full_group_by"錯誤解決方案
1.使用navicat 打開數(shù)據(jù)庫,然后工具-->命令列界面
2.然后輸入: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
解決辦法:
1.修改my.ini睹欲,在[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"
2.重啟
驗證是否解決:
1.navicat 工具-->命令列界面,然后輸入:SELECT @@sql_mode;
2.看到值為:
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
至此立肘,你不用遵守:如下約定了:
對于GROUP BY聚合操作啤呼,如果在SELECT中的列,沒有在GROUP BY中出現(xiàn)鳍徽,那么這個SQL是不合法的,因為列不在GROUP BY從句中,所以對于設(shè)置了這個mode的數(shù)據(jù)庫坯苹,在使用group by 的時候逢防,就要用MAX(),SUM(),ANT_VALUE()這種聚合函數(shù)叶沛,才能完成GROUP BY 的聚合操作。