繁体   English   中英

Postgres 将 jsonb 字符串更新为数组

[英]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';

db<>fiddle 中测试它。

阅读文档中的功能。

一种选择是使用连接运算符( || )将表达式用方括号括起来并转换为TEXT ,然后重新转换为JSONB ,例如

UPDATE tab
   SET column2 = ('['||column2::TEXT||']')::JSONB
 WHERE jsonb_typeof(column2) != 'array'

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM