1. Home
  2. /
  3. Web technology
  4. /
  5. MySql
  6. /
  7. [ MySQL ] –...

[ MySQL ] – How to fix error #1055 如何解決 group by 選取欄位非功能函式

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 1,平均評等: 2]

其實這個問題小編老早就遇過了,但是當時問題解決後沒有寫下筆記所以又重新找了一次解法,果然認真寫筆記是必要的免的多花一些無畏的時間去做重覆的事,這樣我的產值就下降了;問題就是 group by 選取欄位非功能函式,會出現 error #1055 ,解法也很簡單設定相關參數即可。

這樣是可以查詢的

select id, max(time) from table where age>'30' group by id;

但是這樣多個欄位就會出現錯誤

select id, max(time),name from table where age>'30' group by id;

錯誤訊息

1055 – Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘db.table.columns’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

預設的查詢模式只能顯示 group by 欄位,其它的都只能是功能函式

解決方法:
去mysql停用 only_full_group_by 設定

mysql -u root -p
mysql> SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
Query OK, 0 rows affected (0.00 sec)

參考網址:
https://stackoverflow.com/questions/23921117/disable-only-full-group-b

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 1,平均評等: 2]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *