簡體   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