【发布时间】:2016-06-19 07:42:22
【问题描述】:
所以我正在更新一个功能等同于的表:
create table NODE(
group_name varchar(100) not null,
full_name varchar(100) not null,
dependency longtext,
is_top ENUM('0','1') not null default 0,
...
);
依赖关系是所有其他节点的full_name 的串联,当该节点发生需要向下传播到祖先节点的事情时,这些节点会被触发。有一个顶级节点,所有节点都是“子节点”。偶尔会有更多添加到组中,我需要将顶级节点的dependency 更新为其他子节点的full_names 作为一个用“&”分隔的巨大字符串。
这是我的查询:
update NODE n1
join NODE n2
on n2.group_name=n1.group_name
set n1.dependency=GROUP_CONCAT(n2.full_name SEPARATOR '&')
where n1.is_top='1' and n2.is_top='0' and n1.group_name='MY GROUP NAME';
错误:
ERROR 1111 (HY000): Invalid use of group function
我的理解是这样应该没问题,毕竟你可以在select语句中使用GROUP_CONCAT,而且我一直这样做,我不明白这是怎么无效的。
对于好奇的人:我没有设计这个数据库,是的,我重新命名了一些东西以隐藏数据库的真实性质及其工作方式。
【问题讨论】:
标签: mysql