首页 > 解决方案 > 如何更新 JSONB 数组 Postgresql 数组对象中的多个值

问题描述

我在下面有一个 JSONB 数组

[
  {"name":"test","age":"21","phone":"6589","town":"54"},
  {"name":"test12","age":"67","phone":"6546","town":"54"}
]

现在我想更新town, phone, ageif nameis test。如何更新 JSONB 数组中的多个值?

标签: sqljsonpostgresqlsql-updatejsonb

解决方案


下面的查询将为您提供其中包含test单词的结果。找到这些后,您可以更新其他列中的任何值。

工作演示

 CREATE TABLE TEST2 (
    INFO JSON NOT NULL
);

INSERT INTO TEST2 (info)
VALUES('[
  {"name":"test","age":"21","phone":"6589","town":"54"},
  {"name":"test12","age":"67","phone":"6546","town":"54"},
  {"name":"dest147","age":"67","phone":"6546","town":"54"}
]');

SELECT *
FROM TEST2,
json_array_elements(info) elem
WHERE elem ->> 'name' like '%test%';

推荐阅读