Postgresql 删除数组中的元素

extra为 {"a": null, 3, null,"b": 111} 使用sql 将extra中a中的null移除

第一步:

首先先把[null, 3, null]移除,

sql 复制代码
select json_agg(elem) filter ( where elem != 'null' )
from (select jsonb_array_elements('[null,3,null]'::jsonb) as elem) t;

这将得到[3]

  1. jsonb_array_elements 会展开 extra 中 a 数组的每个元素。
  2. filter ( where elem != 'null' ) 用于过滤掉 null。
  3. 使用 jsonb_agg 将非 null 的值重新聚合为一个数组。

第二步:

使用jsonb_set更新数据

sql 复制代码
update table_name
SET extra = jsonb_set(extra::jsonb, '{a}', (select json_agg(elem)
                                            from jsonb_array_elements((extra -> 'a')::jsonb) as elem
                                            where elem != 'null')::jsonb)
where extra::jsonb ? 'a';

更多json用法:

http://www.postgres.cn/docs/12/functions-json.html

相关推荐
卓怡学长2 分钟前
w192基于springboot教务管理系统
java·数据库·spring boot·spring·maven·intellij-idea
码农颜7 分钟前
6.4.1 监听连接
java·数据库·mysql
桐桐桐14 分钟前
Python 实战:批量生成带来源参数的 WhatsApp 短链 + 二维码
服务器·数据库·python·前端框架·ip·跨境电商·独立站
stereohomology29 分钟前
AI解读:某IM软件本地数据库密钥提取与解密
数据库·攻防·加密解密·数字平权
zzzll111131 分钟前
大模型技术原理与应用实践
java·数据库·人工智能
倔强的石头_33 分钟前
数据库迁移工具从单机作业走向云端协同
数据库
yours_Gabriel36 分钟前
【一】数据库基础:SQL语句、函数、约束、多表查询、事务
数据库·sql·oracle
Wang's Blog41 分钟前
PostgreSQL笔记58: 性能监控工具全景——从内核指标到操作系统诊断
数据库·笔记·postgresql
智购科技智能售货柜10 小时前
2026自动售货机整机可靠性测试:从高低温交变到EMC电磁兼容的认证工程实践~YH
运维·服务器·数据库·人工智能·物联网
ltl10 小时前
RocksDB 架构演进:相对 LevelDB 的 diff 地图
数据库