如題...
報錯了
mysql> SELECT sex,age FROM users GROUP BY 1 HAVING age>35;
ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'imooc.users.age' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
2020-03-03
GROUP BY語句通常與聚合函數(COUNT,MAX,MIN,SUM,AVG)一起使用,以按一個或多個列對結果集進行分組。
類似這種才是正確的寫法
SELECT COUNT(id), username FROM users GROUP BY username;
來自 <https://www.w3schools.com/sql/sql_groupby.asp>
2020-01-31
1、首先查看一下sql_mode,使用select @@global.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 @@global.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;
來源于:
https://www.cnblogs.com/kenshinobiy/p/9580701.html
可以自己看看,我的也出現了和你類似的問題,然后按照這個解決了。