首页 >数据库 >mysql教程 >如何解决MySQL的'混合组列”错误(错误#1140)?

如何解决MySQL的'混合组列”错误(错误#1140)?

Linda Hamilton
Linda Hamilton原创
2024-12-27 16:13:09908浏览

How to Solve MySQL's

解决 MySQL 中的“混合组列”错误

MySQL 中的 #1140 错误,指示“混合组列”,当查询在 SELECT 子句中包含非聚合(非 GROUP)列同时还包含聚合列时,会出现此问题没有 GROUP BY 子句。为了解决这个问题,主要有两种方法:

1.禁用 ONLY_FULL_GROUP_BY:

MySQL 有一个名为 ONLY_FULL_GROUP_BY 的配置设置,默认为 ON。此设置强制执行严格的 GROUP BY 语义,要求 SELECT 子句中的所有非聚合列都包含在 GROUP BY 列表中。要禁用此设置,请执行以下查询:

SET SESSION ONLY_FULL_GROUP_BY = OFF;

禁用 ONLY_FULL_GROUP_BY 以允许查询在不修改的情况下执行。

2.添加 GROUP BY 列:

或者,您可以修改查询以包含 GROUP BY 子句中的所有选定字段。这可以确保所有非聚合列都被“分组”,并且结果集满足严格的 GROUP BY 语义:

SELECT COUNT(node.nid), 
       node.nid AS nid, 
       node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value
FROM node node
LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid
WHERE node.type IN ('update')
GROUP BY node.nid, node_data_field_update_date.field_update_date_value
ORDER BY node_data_field_update_date_field_update_date_value DESC;

修改查询以包含 GROUP BY 子句可以通过显式对结果进行分组来解决问题在所有非聚合列上设置。

以上是如何解决MySQL的'混合组列”错误(错误#1140)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn