亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

如題...

報錯了

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


正在回答

2 回答

GROUP BY語句通常與聚合函數(COUNT,MAX,MIN,SUM,AVG)一起使用,以按一個或多個列對結果集進行分組。

類似這種才是正確的寫法

SELECT COUNT(id), username FROM users GROUP BY username;


來自 <https://www.w3schools.com/sql/sql_groupby.asp>


0 回復 有任何疑惑可以回復我~

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
可以自己看看,我的也出現了和你類似的問題,然后按照這個解決了。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
與MySQL的零距離接觸
  • 參與學習       396747    人
  • 解答問題       3497    個

本課程涵蓋全部MySQL數據庫的基礎,學習MySQL數據庫的基礎知識

進入課程
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號