当前位置: 首页 > article >正文

Postgresql 删除数组中的元素

extra为 {“a”: [null, 3, null],“b”: 111} 使用sql 将extra中a中的null移除

第一步:

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

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更新数据

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


http://www.kler.cn/news/304059.html

相关文章:

  • Linux系统使用Docker安装DockerUI并实现远程管理本地容器无需公网IP
  • Prompt最佳实践|善用分隔符,让你的Prompt更清晰
  • 解决VScode中每次git push或者pull都需要重新输入账户名和密码问题
  • PL/SQL Developer工具的使用
  • 【数据结构初阶】队列接口实现及用队列实现栈超详解
  • 基于SpringBoot的高校电动车租赁服务管理系统
  • 智能化等保测评工具的兴起与应用实践
  • 房产销售系统:SpringBoot技术优化方案
  • 在已安装Python环境的基础上安装anaconda或者其他版本Python
  • 使用 RabbitMQ 实现秒杀订单系统的异步消息处理
  • 【C++】Linux平台C++实现Socket通信(Unix域、TCP/IP、UDP)
  • 基于Python的B站热门视频可视化分析与挖掘系统
  • 伊顿穆勒Moeller控制器电源维修easy 619-AC-RCX
  • CAESES许可证转移方法
  • Keras深度学习中文文本分类
  • wopop靶场漏洞挖掘练习
  • 【数学建模国赛】写作心得
  • 搜维尔科技:AcuMap - 针灸模拟VR训练解决方案
  • Leetcode 109.有序链表转换二叉搜索树(Medium)
  • Android Studio 安装2022版稳定版 2022.3.1 详细操作(带图展示)
  • OpengGL教程(三)---使用VAO和VBO方式绘制三角形
  • 02 Docker基本管理
  • 个性化、持续性阅读 学生英语词汇量自然超越标准
  • 智慧交通基于yolov8的行人车辆检测计数系统python源码+onnx模型+精美GUI界面
  • Camera2 预览旋转方向、拍照、录像成像旋转
  • Pytorch维度转换操作:view,reshape,permute,flatten函数详解
  • 计算左边(比自己小的元素)的最长距离
  • Linux中常见的Docker问题及解决方法
  • Oracle rman 没有0级时1级备份和0级大小一样,可以用来做恢复 resetlogs后也可以
  • 基于python+django+vue的农业管理系统