首页 > 数据库 > mysql教程 > 为什么 MySQL 会抛出'不在 GROUP BY 中”错误,如何修复它?

为什么 MySQL 会抛出'不在 GROUP BY 中”错误,如何修复它?

Mary-Kate Olsen
发布: 2024-12-21 02:42:10
原创
610 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板