我有options类型为 jsonb 的列,{"names": ["name1", "name2"]}其格式是用创建的
UPDATE table1 t1 SET options = (SELECT jsonb_build_object('names', names) FROM table2 t2 WHERE t2.id= t1.id)
Run Code Online (Sandbox Code Playgroud)
其中names有类型 jsonb 数组。
SELECT jsonb_typeof(names) FROM table2给array
现在我想提取namesjsonb 数组的值。但查询
SELECT jsonb_build_array(options->>'names') FROM table
Run Code Online (Sandbox Code Playgroud)
给了我["[\"name1\", \"name2\"]"],而我期待着["name1", "name2"]
我怎样才能以正确的格式获得价值?
该->>运算符将返回字段的值(在您的例子中是一个 JSON 数组)作为正确转义的文本。您要寻找的是->操作员。
但是,请注意,使用jsonb_build_arrayon 将返回一个包含原始数组的数组,这可能也不是您想要的;只需使用options->'names'就可以得到你想要的。
| 归档时间: |
|
| 查看次数: |
3580 次 |
| 最近记录: |