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