SQLite中使用GROUP_CONCAT实现两列值配对拼接的方法
解决方案:使用GROUP_CONCAT实现SQLite按id分组拼接key-value对
没问题!要实现你想要的按id分组,将每行的key和value配对后拼接成指定格式列的需求,用SQLite的GROUP_CONCAT()函数就能轻松搞定,具体SQL语句和解释如下:
完整SQL语句
SELECT id, CONCAT('[', GROUP_CONCAT(CONCAT(key, ',', value), ';'), ']') AS key_value_pairs FROM your_table_name -- 替换成你的实际表名 GROUP BY id;
语句拆解说明
- 单条key-value拼接:
CONCAT(key, ',', value)会把每行的key和value合并成key,value的格式,比如把key=16、value=662转换成16,662; - 分组拼接多个对:
GROUP_CONCAT(..., ';')会将同一个id下的所有key,value字符串用;分隔连接起来,形成16,662;17,808;33,1;60,2这样的中间结果; - 添加外层方括号:最外层的
CONCAT('[', ..., ']')会给拼接好的字符串加上前后方括号,最终得到你需要的[16,662;17,808;33,1;60,2]格式。
注意:记得把语句里的your_table_name替换成你实际使用的表名称哦。
内容的提问来源于stack exchange,提问作者Andreas B
相关产品推荐
相关产品推荐

