首页 > 解决方案 > JSONB 更改参数值

问题描述

我有一个表,其中包含一个名为whole_params的一行中的 json 类型,如果名为exampleParam的 json 参数等于value1,我想更改值我想将其更改为value2

UPDATE table_name t 
SET whole_params = json_set(whole_params, '{exampleParam}')::jsonb)
WHERE t.whole_params ->> 'exampleParam' = 'value1';

我写了类似的东西,但我不知道如何改变那个'value1',有什么想法吗?

标签: sqljsonpostgresqljsonb

解决方案


您只需要使用jsonb_set()而不是json_set()稍作更改即可

UPDATE table_name t 
  SET whole_params = jsonb_set(whole_params, '{exampleParam}','"value2"') 
WHERE t.whole_params ->> 'exampleParam' = 'value1';

推荐阅读