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

MySQL如何将同ID下带Null值的多行合并为包含所有有效值的单行

MySQL同分组多行合并为单行方案

实现思路

按ID、Name字段分组后,使用聚合函数忽略NULL值的特性提取每个Type字段的有效值即可,MAX()、MIN()都可以实现该效果。

示例查询语句

假设你的表名为test_table,语句如下:

SELECT
  ID,
  Name,
  MAX(Type1) AS Type1,
  MAX(Type2) AS Type2,
  MAX(Type3) AS Type3,
  MAX(Type4) AS Type4
FROM test_table
-- 仅查询ID=1、Name=ABC的分组时保留下方WHERE条件,查询全部分组则删除
WHERE ID = 1 AND Name = 'ABC'
GROUP BY ID, Name;

原理解释

  • GROUP BY ID, Name 会将所有ID、Name完全相同的行归为同一个分组
  • 聚合函数MAX()计算时会自动跳过NULL值,你的场景中每个Type字段在分组内仅有一个非空值,会被MAX()直接提取出来
  • 如果你的Type字段是字符串类型,MAX()会取字典序最大的有效值,因为分组内只有一个非空值,返回结果完全符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:45:03