【问题标题】:Postgres update JSON fieldPostgres 更新 JSON 字段
【发布时间】:2016-05-05 13:42:49
【问题描述】:

我有几个 Postgres 9.4 表,其中包含如下数据:

|编号 |数据 | |----|------------------------------------------------------| | 1 | {“用户”:“乔”,“更新时间”:123} | | 2 | {“消息”:“嗨”,“更新时间”:321} |

我需要将 JSON 列转换成这样的东西

|编号 |数据 | |----|-------------------------------------------- ------------------| | 1 | {“用户”:“乔”,“更新时间”:{123,“单位”:“毫”}} | | 2 | {“消息”:“嗨”,“更新时间”:{321,“单位”:“毫秒”}} |

理想情况下,将转换应用于多个表会很容易。应该更新包含 JSON 键 data->'updated-time' 的表,不应该跳过的表。谢谢!

【问题讨论】:

  • 您有任何疑问吗?你到底卡在哪里了?使用正确的运算符/函数进行 JSON 操作?使用基于条件更新行选择的基本 SQL?
  • 提供的预期json无效,可以使用{"value": 123, "unit":"millis"}[123, {"unit":"millis"}]
  • 如果我是你,我会写一个 python 脚本来进行转换

标签: json database postgresql psql


【解决方案1】:

您可以使用|| 运算符将两个jsonb 对象合并在一起。

select '{"foo":"bar"}'::jsonb || '{"baz":"bar"}'::jsonb;
= {"baz": "bar", "foo": "bar"}

【讨论】:

    猜你喜欢
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 2017-06-11
    相关资源
    最近更新 更多