[英]Update json in postgres using multiple columns
我想更新一列 JSONB 對象。 所以如果我有這張桌子
我想從具有 as 1 的行中刪除 value1 和 value2 然后我認為這個查詢會起作用
UPDATE
test AS d
SET
b = b - s.b_value
FROM
(VALUES
(1, 'value1'),
(1, 'value2')
)
AS s(a, b_value)
WHERE
d.a = s.a
有沒有簡單的方法來解決它? 我想進行查詢以刪除此類內容,但如果只能在一個查詢中完成,那將是一件好事。 我從這里得到了最初的想法,在這里你可以測試 SQL 查詢
您可以從 jsonb 值中減去一個text[]
鍵數組,如下所示:
with s (a, b_value) as (
values (1, 'value1'), (1, 'value2')
), dels as (
select a, array_agg(b_value) as b_values
from s
group by a
)
update test
set b = b - dels.b_values
from dels
where dels.a = test.a;
db<> 在這里擺弄
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.