首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将jsonb键值转换为键值数组

将jsonb键值转换为键值数组
EN

Stack Overflow用户
提问于 2018-08-25 19:45:24
回答 1查看 97关注 0票数 2

作为一个笔记应用程序,我现在的PostgreSQL模式中有以下json文档:

postgres=# select id, data from notes where id=107;
 id  |                                           data                                           
-----+-----------------------------------------------------------------    
 107 | {"tag": "sample tag", "title": "sample title", "content": "sample title\n\nsample text"}

为了能够在将来使用多个标记,我希望将数据库中的每个现有条目从上面转换到一个数组中,如下所示:"tag": ["sample tag"]

我做了一些研究,通过尝试,我得到了一些类似的东西:

UPDATE notes SET data = jsonb_set(data, '{tag}', $$["sample tag", "xyz"]$$);

它实际上将行从"tag": "sample tag"更新为"tag": ["sample tag", "xyz"],但我希望使用现有标记动态地运行所有条目。我想不出一种在jsonb_set部件中运行子查询的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-25 20:37:51

使用函数jsonb_build_array():

update notes
set data = jsonb_set(data, '{tag}', jsonb_build_array(data->'tag'));

Working example in rextester.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52016987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档