sql - PSQL 将 jsonb 属性更新为当前值

标签 sql postgresql psql

假设我有一个 jsonb 类型的列 X。 X 有 json 的结构

{"y":"some value","z":"some more values"}.

现在我需要实现的是我要追加“!!!!”到所有 z 属性的末尾。附加操作应该更新现有记录

最佳答案

使用->>操作符获取z的值作为text||操作符附加另一个字符串。使用to_jsonb() 将结果转换为jsonb,并使用jsonb_set() 将其分配给z

SELECT jsonb_set(x, '{z}', to_jsonb(x->>'z' || '!!!!'))
       FROM elbat;

更多信息:"9.15. JSON Functions and Operators"

关于sql - PSQL 将 jsonb 属性更新为当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51690734/

相关文章:

sql - 包含引号的 Postgres 语句管道

mysql - 根据两个标准条件,为每个唯一 ID 返回不同值的多个 COUNT 字段

发出简单数组的 SQL FOR JSON

javascript - 在 Postgres JSONB 中转义生成的单引号

postgresql - 导入psql转储时如何关闭 "setval"输出

postgresql - 保存 psql 历史文件时出错

sql - 仅使用 sql 解析表达式\查找表达式值的顺序

mysql - 在某些条件下将行转换为列

PostgreSQL - 是否可以并行化更新?

python - Psycopg2 Python SSL 支持未编译