首頁 >資料庫 >mysql教程 >為什麼在沒有 GROUP BY 子句的情況下無法聚合 MySQL 中的查詢?

為什麼在沒有 GROUP BY 子句的情況下無法聚合 MySQL 中的查詢?

Susan Sarandon
Susan Sarandon原創
2024-10-26 02:35:02987瀏覽

Why Can't I Aggregate Queries in MySQL Without a GROUP BY Clause?

在MySQL 中聚合查詢而不使用GROUP BY

在未指定GROUP BY 子句的情況下聚合資料時,您的查詢遇到語法錯誤。此行為是在 MySQL 5.7.5 中引入的,作為確保資料聚合完整性的一部分。

錯誤訊息說明非聚合資料列(例如查詢中的 id)不能出現在 SELECT 中當使用聚合函數(例如 COUNT())而不使用 GROUP BY 子句時的清單。這可確保聚合結果準確且一致。

解決錯誤

您有兩個選項來解決此錯誤:

  1. 更改🎜>您可以修改MySQL 配置以還原到先前的行為,其中SELECT 清單中允許使用非聚合列,而無需使用GROUP BY 子句。但是,不建議這樣做,因為它違反了資料聚合的最佳實踐。
  2. 修改您的查詢:首選解決方案是修改您的查詢以包含 GROUP BY 子句,該子句將結果分組為非聚合列。在您的情況下,您可以使用以下更新的查詢:
SELECT id, password, COUNT(id) AS count 
FROM users 
WHERE email = :email 
GROUP BY id, password 
LIMIT 1
或者,如果您可以確保非聚合列(例如id)僅限於WHERE 中的單一值子句,您可以將其從GROUP BY 子句中排除。請參閱提供的連結以取得此異常的範例。

透過使用其中一種方法,您可以解決錯誤並確保 MySQL 查詢中的資料正確聚合。

以上是為什麼在沒有 GROUP BY 子句的情況下無法聚合 MySQL 中的查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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