- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有带有 jsonb 列的数据库表。
number | data
1 | {"name": "firstName", "city": "toronto", "province": "ON"}
我需要一种更新数据列的方法。所以我的输出应该是这样的:
{"name": "firstName", "city": "ottawa", "province": "ON", "phone": "phonenum", "prefix": "prefixedName"}
json_set 可以吗?我添加了如下查询:
update table_name set data = jsonb_set(data, '{city}', '"ottawa"') where number = 1;
但是,我需要一种方法来添加新的键值(如果不存在)并更新键值(如果存在)。是否可以在单个查询中实现这一点?
最佳答案
The || operator concatenates the elements at the top level of each of its operands. ... For example, if both operands are objects with a common key field name, the value of the field in the result will just be the value from the right hand operand.
因此使用您的示例数据:
update table_name set
data = data || '{"city": "ottawa", "phone": "phonenum", "prefix": "prefixedName"}'
where number = 1;
此外,如果您要编辑的对象不在顶层 - 只需结合连接和 jsonb_set
函数即可。例如,如果原始数据看起来像
{"location": {"name": "firstName", "city": "toronto", "province": "ON"}}
然后
...
data = jsonb_set(
data,
'{location}', data->'location' || '{"city": "ottawa", "phone": "phonenum", "prefix": "prefixedName"}')
...
关于postgresql - postgres jsonb_set 多键更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38883233/
需要帮助才能让 jsob_set 在 PostgreSQL 程序下工作,从子表中获取记录并更新父表的 json 字段值。将选定的值分配给变量并将其添加到 value 下的 jsonb_set 中,例如
我使用的是 Postgres 9.6,我有一个 JSONB 列,其中一些行具有 NULL 值,一些行具有字典值,如 {"notify": false}。 我想用更多字典键/值对更新列值。 UPDATE
我在 Postgres 11.3 数据库中有一个表,带有 jsonb柱子。 尝试更新嵌套数组名称中的所有对象 "iProps" . 如果路径{iProps -> value -> rules -> a
我正在尝试使用 jsonb_set 更新数据库中的一系列 json 对象。我可以使用一个查询来使用字符串值更新对象,但是我似乎无法使用当前值来更新它。 UPDATE entity SET proper
我正在尝试使用 jsonb_set 更新数据库中的一系列 json 对象。我可以使用一个查询来使用字符串值更新对象,但是我似乎无法使用当前值来更新它。 UPDATE entity SET proper
我正在尝试向 Postgres 中的 jsonb 数组添加元素。 事先我确定每个元素会有什么索引,但我不知道: 我添加元素的顺序是什么 元素总数是多少 例如,如果最终数组是[0,1,2,3,4](为简
我有一个带有 jsonb 列的 DB 表,该列具有一个实体和嵌套的子实体。假设我们有: SELECT jsonb_set('{"top": {"nested": {"leaf": 1}}}', '{t
我有带有 jsonb 列的数据库表。 number | data 1 | {"name": "firstName", "city": "toronto", "province": "ON
var query=`UPDATE "public"."vehicle_ads" SET options= jsonb_set(
我有一个 sql 查询,用于更新类型为 data 的列中的 status 值jsonb 在 Postgresql 中看起来像这样: update sample set updated = now(),
我一定是遗漏了一些东西...似乎 JSONB_SET() 无法正常工作 advertised ? SELECT JSONB_SET( '{"k1": {"value": "v1"}}',
在 Postgres 中,如何在 jsonb 字段中设置数字而不是字符串值? jsonb_set 想要一个 jsonb 值作为第三个参数,但数字不能转换为 json。示例代码: CREATE OR R
目前我正在使用 PostgreSQL 9.5 并尝试更新 jsonb 字段数组中的值。但是我无法获取所选值的索引 我的表看起来像这样: CREATE TABLE samples ( id s
我正在构建一个社交网络,并尝试实现一个数据结构来为每个用户保存时间线事件 ID。我的灵感来自 Redis Twitter Clone及其对 Redis 列表的使用。 因此,例如,对于 user_id
我的目的是使用 jsonb_set 更新 jsonb 列,该列当前为 null,并且对象具有多个键值对。更新命令成功执行,但它没有更新任何内容,该列仍然为空。我正在尝试以下查询。 UPDATE tab
我是一名优秀的程序员,十分优秀!