【问题标题】:Updating JSON in postgres在 postgres 中更新 JSON
【发布时间】:2015-03-05 12:45:11
【问题描述】:

我有一个带有json 字段(不是json-b)的表,需要删除一些记录中存在的键(或将值设置为'')。

如何使用 SQL 更新此表?

我看过this的问题,但感觉应该有更简单的方法来解决这个简单的问题。

【问题讨论】:

  • 根级别的所有键,没有嵌套,对吧?请始终提供您的 Postgres 版本。

标签: json postgresql


【解决方案1】:

首先:如果您经常更新值,json 在您的数据库设计中可能是一个糟糕的选择:

纯 SQL:

UPDATE tbl
SET    json_col = (
   SELECT concat('{', string_agg(to_json(j.key) || ':' || j.value, ','), '}')::json
   FROM   json_each(json_col) j
   WHERE  j.key <> 'delete_this_key'
   )
WHERE  json_col->>'delete_this_key' <> ''; -- only applicable rows!

相关:

【讨论】:

    猜你喜欢
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2018-01-29
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多