[英]Postgres update jsonb string to array
我有一个表,其中 column2 是 JSONB 类型,我想将 column2 是字符串的值更改为数组。 我希望 column2 的结果为 "one" 为 ["one"] 和 "third" 为 ["third"]
桌子
第 1 列 | 第 2 列 |
---|---|
第一的 | [“一二三”] |
第二 | “一” |
第三 | “第三” |
第三 | 4 |
我应该如何更新价值? 这是我尝试过的:
UPDATE table
SET columnn2 = ARRAY[value]::JSONB
WHERE jsonb_typeof(column2)!='array';
使用jsonb_build_array()
函数:
update my_table set
column2 = jsonb_build_array(column2)
where jsonb_typeof(column2) != 'array';
阅读文档中的功能。
一种选择是使用连接运算符( ||
)将表达式用方括号括起来并转换为TEXT
,然后重新转换为JSONB
,例如
UPDATE tab
SET column2 = ('['||column2::TEXT||']')::JSONB
WHERE jsonb_typeof(column2) != 'array'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.