首页 > 数据库 > mysql教程 > 如何解决 MySQL 错误 #1140:混合组列?

如何解决 MySQL 错误 #1140:混合组列?

Barbara Streisand
发布: 2024-12-29 16:51:17
原创
760 人浏览过

How to Resolve MySQL Error #1140: Mixing of GROUP Columns?

MySQL 错误 #1140:混合 GROUP 列

当 MySQL 查询将 GROUP 函数与非 GROUP 列混合时,会发生此错误SELECT 列表,但没有 GROUP BY 子句。换句话说,它建议某些选定的列应分组在一起,而其他列则不应分组。

考虑以下 SQL 查询:

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')
ORDER BY node_data_field_update_date_field_update_date_value DESC;
登录后复制

此查询正在尝试对类型“update”的节点数量,并检索每个节点的节点 ID (nid) 和更新日期。但是,它将 GROUP 函数 COUNT() 与 SELECT 列表中的非 GROUP 列 nid 和 node_data_field_update_date_field_update_date_value 混合在一起。

要解决此错误,请禁用 MySQL 服务器上的 ONLY_FULL_GROUP_BY 设置或修改查询以进行分组非团体列:

禁用 ONLY_FULL_GROUP_BY:

mysql> SET GLOBAL ONLY_FULL_GROUP_BY = OFF;
登录后复制

向查询添加分组:

SELECT COUNT(node.nid) AS node_count,
       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;
登录后复制

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

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