MySQL 5.7 中聚合查询需要 GROUP BY
问:升级到 MySQL 5.7.14 后,执行查询时遇到错误没有 GROUP 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中文网其他相关文章!