MySQL 聚合查詢錯誤:對「only_full_group_by」模式進行故障排除
在MySQL 5.7.5 及更高版本中,引入了一個微妙但影響深遠的更改,影響聚合查詢,例如本討論中提出的查詢。臭名昭著的「未捕獲異常『PDOException』」錯誤表示查詢違反了 MySQL 5.7.5 中引入的 only_full_group_by SQL 模式。
此模式強制執行關聯式資料庫中的古老原則:當執行聚合(count、sum、max 等)時,所有非聚合資料列必須包含在 GROUP BY 子句中。違反此規則的查詢將不再像早期 MySQL 版本那樣被默默忽略。
理解此變更背後的原因至關重要。透過防止在 SELECT 子句中使用非聚合列進行查詢,但不在 GROUP BY 子句中進行查詢,MySQL 確保了資料的準確性和一致性。此類查詢可能會產生不明確的結果,通常會導致錯誤的分析和決策。
解決此錯誤需要雙管齊下:
修改MySQL設定(選項1):
重構查詢(選項2):
理想的解決方案是修改查詢以符合only_full_group_by 模式。這涉及在GROUP BY 子句中包含所有非聚合列:
例外🎜>規則:
以上是以下是一些標題選項,請記住問答格式: 選項 1(關注錯誤): * MySQL 聚合查詢錯誤:\"only_full_group_by\" - 如何修復\'PDO的詳細內容。更多資訊請關注PHP中文網其他相關文章!