gpt4 book ai didi

json - 如何在具有空值的列上使用 `jsonb_set`

转载 作者:行者123 更新时间:2023-11-29 11:19:00 27 4
gpt4 key购买 nike

我使用的是 Postgres 9.6,我有一个 JSONB 列,其中一些行具有 NULL 值,一些行具有字典值,如 {"notify": false}

我想用更多字典键/值对更新列值。

UPDATE accounts SET notifications =  jsonb_set(notifications, '{"alerts"}', 'false');

在我已经拥有像 {"notify": false} 这样的值的情况下有效。最终结果变成了预期的 {"alerts": false, "notifications": false}

但是我试图更新我们的值 NULL,数据库中没有任何更新。

你能告诉我如何更新 NULL 值吗,所以它们的最终结果将是像 {"notify": false} 这样的值.最终结果如预期的那样 {"alerts": false}

最佳答案

使用coalesce() :

UPDATE accounts 
SET notifications = jsonb_set(coalesce(notifications, '{}'), '{"alerts"}', 'false')

或者更简单:

UPDATE accounts 
SET notifications = coalesce(notifications, '{}') || '{"alerts": false}'

关于json - 如何在具有空值的列上使用 `jsonb_set`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44971694/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com