json - Postgres如何将字段转换为json数组
问题描述
我在我的数据库的列中保存了这样的 json:
{"a":137,"b":"28","c":"1","d":"5","e":19,"f":true}
是否可以通过查询将“e”转换为数组而不删除值?
{"a":137,"b":"28","c":"1","d":"5","e":[19],"f":true}
解决方案
update the_table
set the_column = the_column||jsonb_build_object('e', array_to_json(array[the_column -> 'e']))
where ...
array[the_column -> 'e']
从 key 引用的单个元素创建一个“本机”数组'e'
。该数组被转换为 JSON,并使用它创建一个新的 JSON 值jsonb_build_object()
,然后将其连接到现有值。这将覆盖现有的密钥"e"
。
以上假设该列被定义为jsonb
(它应该是)。如果它只是json
你需要铸造它以使替换工作||
推荐阅读
- git - 合并后保留分支历史
- javascript - 将 redux saga 与 next.js 一起使用是反模式吗?
- javascript - Sequelize::findAll 不是函数
- mysql - 比较mysql中的两个表
- java - 仅在某些条件为真时才使用来自 Kafka 的消息
- sql - 我可以为添加到 SQL 表的所有新行从数据库发送邮件(通知到表中的电子邮件字段)吗
- laravel - 如何在 laravel 中编辑和更新多选表单
- javascript - 无法使用 foEach 动态创建数组
- php - 运行 Laravel 队列时的进程问题
- javascript - JS 日期没有给出正确的输出