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

MySQL 5.6下按id分组将key-value多行数据转列合并为单行的查询方法

MySQL 5.6 键值表行转列实现方案

你需要的是典型的固定key数量的行转列操作,MySQL 5.6 环境下可以直接用聚合函数配合条件判断实现,以下是可直接运行的查询代码:

SELECT 
  id,
  MAX(CASE WHEN `key` = 'name' THEN `value` END) AS name,
  MAX(CASE WHEN `key` = 'country' THEN `value` END) AS country
FROM sample
GROUP BY id;

逻辑说明

  • 用GROUP BY id将相同id的行聚合为一组
  • 每个CASE WHEN语句仅匹配对应key的value值,不匹配的行返回NULL
  • 用MAX()聚合函数提取每组中非NULL的value值,即可得到每个id对应的各个key的取值

也可以用左连接的方式实现,效果完全一致:

SELECT 
  t1.id,
  t1.`value` AS name,
  t2.`value` AS country
FROM (SELECT id,`value` FROM sample WHERE `key`='name') t1
LEFT JOIN (SELECT id,`value` FROM sample WHERE `key`='country') t2 
ON t1.id = t2.id;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:06:04