如何避免 MySQL 中的「SELECT 清單的表達式 #1 不在 GROUP BY 中」錯誤?

Patricia Arquette
發布: 2024-11-27 18:51:11
原創
266 人瀏覽過

How Can I Avoid

避免MySQL ANY_VALUE 的GROUP BY 錯誤

使用MySQL 資料庫時,常常會遇到與分組作業相關的錯誤,尤其是在版本中5.7 之前。其中一個問題是錯誤「SELECT 清單的表達式 #1 不在 GROUP BY 中」。當嘗試在 GROUP BY 查詢中擷取非聚合列時,會發生此錯誤。

在 MySQL 5.7 中,ANY_VALUE 函數透過允許從非聚合列檢索單一任意值,為此問題提供了便捷的解決方案。組內的聚合列。但是,此功能在早期版本的 MySQL 中不可用,例如 5.6。

一種解決方法是暫時停用 ONLY_FULL_GROUP_BY SQL 模式,該模式對 GROUP BY 操作強制執行更嚴格的要求。這可以使用下列查詢來完成:

停用 SQL 模式後,使用 ANY_VALUE 函數的查詢將在 MySQL 5.6 中執行,不會發生錯誤。但是,需要注意的是,這種解決方法可能會導致不可預測的結果,因為它允許在查詢結果中傳回非聚合列。

更可靠的解決方案是修改 SQL 查詢本身以明確聚合所需的列或從表中選擇特定行。例如,如果範例查詢中的影像表具有自動遞增 id 列,則下列查詢將為每個國家/地區傳回一行,並顯示可預測的圖片:

以上是如何避免 MySQL 中的「SELECT 清單的表達式 #1 不在 GROUP BY 中」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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