sql - 添加到 Postgres 中的 json 列中的数组

标签 sql json postgresql

我在 Postgres 表中有一个 json 对象列。 假设每条记录包含此列的值类似于下面的 json

{"country":"USA","states":["Texas","Alaska"]}

我将如何创建更新语句以将新状态“Virginia”添加到该 json 列中的状态数组。

表名:人员详细信息 列名:位置

最佳答案

demo:db<>fiddle

使用jsonb_insert():

UPDATE nations
SET nation = jsonb_insert(nation::jsonb, '{states,0}', '"Virginia"')::json
WHERE nation ->> 'country' = 'USA';

如果您的数据类型是 json,那么您将需要转换为 jsonb 类型并返回(如图所示)

关于sql - 添加到 Postgres 中的 json 列中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58079160/

相关文章:

php - Laravel 通过 SQL 文件播种

javascript - 如何以 Angular 组合单一形式的两个部分?

java - 当 JSON 对象作为字符串文字插入时,MySQL JSON 列丢失小数精度

linux - 如何打印特定模式下表中的总行数?

mysql - 适用于 SQL Server、mySQL 和 postgreSQL 的可移植 SQL

java - SQL查询速度: multiple queries vs sorting within Java

sql - 如何在WHERE子句中使用json列作为条件

mysql - 根据 SQL 中的日期计算百分位数

json - GraphQL 可以处理将单项数组转换为字典的 XML 响应吗?

sql - 重用具有不同 WHERE 子句的子查询