postgresql 在postgres中更新JSON

bweufnob  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(174)

我有一个带有json字段(不是json-b)的表,需要删除与某些记录一起存在的键(或将值设置为“”)。
如何使用SQL更新此表?
我看过this的问题,但感觉应该有一个更简单的方法来解决这个简单的问题。

cu6pst1q

cu6pst1q1#

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

  • 如何对JSONB类型的列执行更新操作

纯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!

字符串
相关信息:

相关问题