首頁 >資料庫 >mysql教程 >為什麼 MySQL 會拋出「不在 GROUP BY 中」錯誤,如何修復它?

為什麼 MySQL 會拋出「不在 GROUP BY 中」錯誤,如何修復它?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-21 02:42:10613瀏覽

Why Does MySQL Throw an

MySQL 錯誤:'isn't in GROUP BY'

MySQL 在檢索時常會產生“isn't in GROUP BY”錯誤使用特定查詢從表中取得資料。了解原因以及解決方法至關重要。

背景:

MySQL 要求SELECT 子句中包含的所有欄位(除了COUNT 之類的聚合函數之外)也必須包含在GROUP BY 子句中。這可確保結果是基於指定列中具有不同值的資料組。

範例錯誤:

在提供的範例中,使用時會出現錯誤查詢:

SELECT `name`, `type`, `language`, `code` 
FROM `users` 
WHERE `verified` = '1' 
GROUP BY `name` 
ORDER BY `count` DESC LIMIT 0, 25

MySQL 偵測到 GROUP BY中不存在列計數

解決方案:

要解決此錯誤,必須將 SELECT 子句中的所有列包含在 GROUP BY 子句中。在這種情況下,修改後的查詢將是:

SELECT `name`, `type`, `language`, `code` 
FROM `users` 
WHERE `verified` = '1' 
GROUP BY `name`, `type`, `language`, `code` 
ORDER BY `count` DESC LIMIT 0, 25

附加說明:

  • MySQL 的預設行為是允許部分GROUP BY,這可能會導致到非確定性結果。
  • 要強制執行完整的 GROUP BY,請設定@@sql_mode='ONLY_FULL_GROUP_BY'.

以上是為什麼 MySQL 會拋出「不在 GROUP BY 中」錯誤,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn