報錯信息:
Expression #1 of SELECT list is not in GROUP BY clause and contains
nonaggregated column ‘a.rsc_adj_no’ which is not functionally
dependent on columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by
選擇列表中的一個不在GROUP BY子句中,它包含非聚合列“ rsc_adj_no ”,在功能上不存在依賴于GROUP BY子句中的列。這與sql_mode = only_full_group_by相悖
解決方法:
1. select @@global.sql_mode; 查詢結果若包括ONLY_FULL_GROUP_BY,使用 set @@global.sql_mode="xxxx"; (去掉ONLY_FULL_GROUP_BY的其他字符串)重新設置即可
2. 修改my.cnf 文件后,重啟mysql
[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
3. 使用函數any_value把報錯的字段name包含起來。如,
select any_value(rsc_adj_no) rsc_adj_no,any_value(bill_no) bill_no from table group by bill_no;
浙公網安備 33010602011771號