首页 > 数据库 > mysql教程 > 为什么 MySQL 会抛出'main.users.type”不在 GROUP BY 错误中?

为什么 MySQL 会抛出'main.users.type”不在 GROUP BY 错误中?

Patricia Arquette
发布: 2024-12-08 00:20:15
原创
614 人浏览过

Why is MySQL Throwing a 'main.users.type' Isn't in GROUP BY Error?

MySQL Error: 'main.users.type' isn't in GROUP BY

您在 phpMyAdmin 中遇到的错误消息表明您您的 GROUP BY 子句中缺少一列(在本例中为类型)

原因:

MySQL 要求 SELECT 子句中所有非聚合函数(例如 COUNT、SUM)的列必须包含在 GROUP BY 中条款。这可确保结果根据这些列正确分组。

修复:

要解决该错误,您需要将缺失的列添加到 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
登录后复制

背景:

在 SQL92 中,要求 SELECT 子句中的所有列都必须是 GROUP BY 子句的一部分。在 SQL99 中,这一限制被放宽,以允许功能上依赖于 GROUP BY 子句的列。但是,MySQL 默认允许部分分组,这可能会导致不可预测的结果。

为了确保一致性,可以将 @@sql_mode 设置为 'ONLY_FULL_GROUP_BY':

SET @@sql_mode='ONLY_FULL_GROUP_BY';
登录后复制

与在此设置下,任何部分 GROUP BY 查询都会导致错误,迫使您在子句中包含所有必需的列。

以上是为什么 MySQL 会抛出'main.users.type”不在 GROUP BY 错误中?的详细内容。更多信息请关注PHP中文网其他相关文章!

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