我正在使用PostgreSQL,我正在尝试为jsonb运行更新。
我想将“ 2W”更改为仅2。
因此下面的查询删除了W,但将其保留为“ 2”。
我将如何删除双引号?
目前看起来像{“ size”:“ 2W”},我希望它看起来像{“ size”:2}]
UPDATE x
SET x = jsonb_set(x, '{size}', ('"' || replace(x->>'size', 'W', '') || '"')::jsonb)
WHERE x IN ('')
您可以为此使用to_jsonb()
:
jsonb_set(x, '{size}', to_jsonb(replace(x->>'size', 'W', '')::int))
select jsonb_set(x, '{size}', to_jsonb(replace(x->>'size', 'W', '')::int))
from (values('{"size": "2W"}'::jsonb)) as t(x)
| jsonb_set || :---------- || {“ size”:2} |