json - 修改 Postgres 中 json 列中的现有字段
问题描述
所以我正在尝试更新我的 postgres 数据库中的一些条目。特别是我正在尝试使用现有值修改字段值。例如,假设我有以下 json
{"var1": 10, "var2": 0.003, "var3": null}
我想将 var2 更新为 var2*100。我使用更新语句更新了值,例如
UPDATE my_table SET json_column = jsonb_set(my_column, '{var2}', '0.003', true) WHERE (my_column->'var2') is null;
所以我正在尝试使用等效的语句
UPDATE my_table SET my_column = jsonb_set(json_column, '{var2}', '(json_column->'var2)::double precision*100', true) WHERE id = 12;
但是我面临语法错误。有没有人尝试过这样的事情?
解决方案
这可能会变得非常棘手,但你可以通过一些演员来实现。它对我有用:
UPDATE my_table
SET my_column = jsonb_set(json_column, '{var2}', to_jsonb((json_column->'var2')::double precision*100), true)
WHERE id = 12;
推荐阅读
- mysql - 我正在尝试从 pyspark 访问 mysql 表。我正在尝试使用:
- python-3.x - Beautiful Soup Login with Python 3 - 这个表单的 POST url 是什么?
- python - 有没有办法让熊猫从用户选择的 excel 表中构建数据框?
- javascript - 如何将多个文件选择放入一个数组中,然后输出到 HTML
- javascript - 运行应用程序时出现 Sequelize index has been exist 错误
- linux - 如何使用 find、ls 命令根据数组中的条目显示文件名?
- java - 使用 ADAL4J 的 OneDrive 身份验证
- python - Python - 解析 DAX 表达式并识别表和字段
- javascript - 为什么 isNaN(undefined) !== Number.isNaN(undefined) 是真的
- elasticsearch - elasticsearch StatefulSet pod 挂载卷失败