MySQL 5.7 中聚合查詢需要GROUP BY
問:升級到MySQL 5.7.14 後,執行查詢時遇到錯誤沒有查詢BY 子句。該查詢涉及聚合 (COUNT) 和 SELECT 清單中的非聚合列,以前在較舊的電腦上執行。
答:在 MySQL 版本 5.7.5 及更高版本中,預設行為已更改聚合資料時強制使用 GROUP BY。這意味著,當 SELECT 子句中使用 COUNT 等函數時,所有非聚合資料列必須包含在 GROUP BY 子句中。
要解決該錯誤,您有兩個選項:
<code class="sql">SELECT id, password, COUNT(id) AS count FROM users WHERE email = :email GROUP BY id, password LIMIT 1</code>
需要注意的是,MySQL 5.7.5 及更高版本中存在異常當使用WHERE 子句中的篩選器將非聚合列限制為單一值時。在這種情況下,可以從 GROUP BY 子句中排除非聚合列。更多詳情請參考官方文件。
以上是為什麼我的 MySQL 5.7 聚合查詢在沒有 GROUP BY 子句的情況下會失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!