首頁 > 資料庫 > mysql教程 > 如何解決MySQL的「混合群組列」錯誤(錯誤#1140)?

如何解決MySQL的「混合群組列」錯誤(錯誤#1140)?

Linda Hamilton
發布: 2024-12-27 16:13:09
原創
896 人瀏覽過

How to Solve MySQL's

解決MySQL 中的“混合組列”錯誤

MySQL 中的#1140 錯誤,指示“混合組列”,當查詢在SELECT 子句中包含非聚合(非GROUP)欄位同時也包含聚合列時,會出現此問題沒有GROUP BY子句。為了解決這個問題,主要有兩種方法:

1.停用 ONLY_FULL_GROUP_BY:

MySQL 有一個名為 ONLY_FULL_GROUP_BY 的設定,默認為 ON。此設定強制執行嚴格的 GROUP BY 語義,要求 SELECT 子句中的所有非聚合列都包含在 GROUP BY 清單中。若要停用此設置,請執行下列查詢:

SET SESSION ONLY_FULL_GROUP_BY = OFF;
登入後複製

停用 ONLY_FULL_GROUP_BY 以允許查詢在不修改的情況下執行。

2.新增 GROUP BY 欄位:

或者,您可以修改查詢以包含 GROUP BY 子句中的所有選取欄位。這可以確保所有非聚合列都被“分組”,並且結果集滿足嚴格的GROUP BY 語義:

SELECT COUNT(node.nid), 
       node.nid AS nid, 
       node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value
FROM node node
LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid
WHERE node.type IN ('update')
GROUP BY node.nid, node_data_field_update_date.field_update_date_value
ORDER BY node_data_field_update_date_field_update_date_value DESC;
登入後複製

修改查詢以包含GROUP BY 子句可以透過明確地將結果分組來解決問題在所有非聚合列上設定。

以上是如何解決MySQL的「混合群組列」錯誤(錯誤#1140)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板