You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL如何按父ID分组拼接同表其他记录的ATTRIBUTE字段值到SIMPLE类型记录

MySQL需求实现方案

1. 仅查询输出预期结果(不修改原表数据)

用GROUP_CONCAT实现分组拼接,结合CASE判断类型返回对应属性值:

SELECT 
  `UNIQUE ID`,
  `TYPE`,
  `Parent ID`,
  CASE 
    WHEN `TYPE` = 'SIMPLE' THEN (
      SELECT GROUP_CONCAT(Attribute SEPARATOR ', ') 
      FROM 你的表名 t2 
      WHERE t2.`Parent ID` = t1.`UNIQUE ID` AND t2.TYPE = 'VARIANT'
    )
    ELSE Attribute
  END AS Attribute
FROM 你的表名 t1;

2. 直接更新原表写入拼接结果

如果需要永久修改原表中TYPE='SIMPLE'记录的Attribute字段值,用以下更新语句:

-- 拼接内容较长的话先执行这行调整GROUP_CONCAT最大长度,单位字节,数值按需修改
-- SET group_concat_max_len = 102400;

UPDATE 你的表名 t_simple
INNER JOIN (
  SELECT `Parent ID`, GROUP_CONCAT(Attribute SEPARATOR ', ') AS attr_list
  FROM 你的表名
  WHERE TYPE = 'VARIANT'
  GROUP BY `Parent ID`
) t_variant ON t_simple.`UNIQUE ID` = t_variant.`Parent ID`
SET t_simple.Attribute = t_variant.attr_list
WHERE t_simple.TYPE = 'SIMPLE';

注意:执行更新前请先备份数据,或先运行查询语句验证结果符合预期后再操作,所有你的表名替换为实际业务表的名称即可。

内容的提问来源于stack exchange,提问作者Lance

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:24:03