如何在 mysql 中使用 GROUP BY?
不少開發(fā)者發(fā)現(xiàn),MySQL 的 GROUP BY 語句并不總是嚴(yán)格要求將 select 語句中所有的字段都包含在 GROUP BY 子句中。這究竟是怎么回事呢?
事實上,MySQL 的行為取決于 SQL_MODE 的設(shè)置。從 MySQL 5.7 開始,默認(rèn)的 SQL_MODE 啟用了 ONLY_FULL_GROUP_BY 選項。當(dāng)此選項啟用時,SELECT 語句中未出現(xiàn)在 GROUP BY 子句中的列必須在聚合函數(shù)(如 SUM、count、AVG)中使用,否則會拋出錯誤。
不過,你可以通過手動調(diào)整 SQL_MODE 設(shè)置來禁用 ONLY_FULL_GROUP_BY 選項。禁用后,MySQL 不再檢查 SELECT 語句中的列是否全部包含在 GROUP BY 子句中。
有關(guān)詳細(xì)信息,請參閱 MySQL 5.7 參考手冊:
- MySQL :: MySQL 5.7 Reference Manual :: 1.3 What Is New in MySQL 5.7