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

MySQL中如何根据其他列的取值拼接对应Value字段值

MySQL 按分组拼接字段值实现方案

核心实现依赖MySQL内置的GROUP_CONCAT()聚合函数,按TagName、DateTime两个字段分组后,将同组内的Value值按指定分隔符拼接即可。

基础实现SQL

将SQL中的替换为你的实际表名改成你自己的业务表名直接执行即可:

SELECT
    TagName,
    `DateTime`,
    GROUP_CONCAT(Value SEPARATOR ',') AS Value
FROM 替换为你的实际表名
GROUP BY TagName, `DateTime`;

固定拼接顺序的优化写法

如果需要固定Top=xxx在前、Bot=xxx在后的拼接顺序,可以在GROUP_CONCAT内增加排序规则,避免结果顺序随机:

SELECT
    TagName,
    `DateTime`,
    GROUP_CONCAT(Value ORDER BY `Temp Type` DESC SEPARATOR ',') AS Value
FROM 替换为你的实际表名
GROUP BY TagName, `DateTime`;

排序逻辑说明:_Top_Temp的字典序大于_Bot_Temp,倒序排列时Top对应的Value会排在拼接结果的最前面,和你给出的预期结果格式完全一致。

常见注意事项

  • 表中Temp Type字段名带空格、DateTime属于SQL保留关键字,写SQL时必须用反引号(`)包裹,否则会报语法错误
  • GROUP_CONCAT默认最大拼接长度为1024字节,如果单组拼接内容过长会被自动截断,执行SQL前可以先运行以下命令调整当前会话的长度上限,避免数据丢失:
    SET SESSION group_concat_max_len = 102400;
    
  • 基于你给出的样例数据执行上述SQL后,会返回2条有效结果:其中SGTC.0014的两条记录同TagName同DateTime,会拼接为你预期的Top=103.0,Bot=-16.3;SGTC.0013的两条记录DateTime不一致,会分为两行独立返回,符合分组匹配规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:57:17