You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL按键值移除JSONB对象及字段的技术求助

PostgreSQL JSON字段操作解决方案

针对你的ClickTrueTags表中character varying类型的protection_config字段,以下是满足两个需求的具体SQL实现:

需求1:移除trackingIds中指定pixelId的对象

由于字段是字符串类型,需要先转换为jsonb(PostgreSQL中更适合操作的JSON类型),过滤掉pixelId = 'AW-12314555'的元素后,再更新回原字段。

查询验证语句(先确认结果)

SELECT 
  jsonb_set(
    protection_config::jsonb,
    '{pxg, trackingIds}',
    (
      SELECT jsonb_agg(elem)
      FROM jsonb_array_elements(protection_config::jsonb->'pxg'->'trackingIds') elem
      WHERE elem->>'pixelId' != 'AW-12314555'
    )
  ) AS updated_protection_config
FROM ClickTrueTags;

实际更新语句

UPDATE ClickTrueTags
SET protection_config = jsonb_set(
    protection_config::jsonb,
    '{pxg, trackingIds}',
    (
      SELECT jsonb_agg(elem)
      FROM jsonb_array_elements(protection_config::jsonb->'pxg'->'trackingIds') elem
      WHERE elem->>'pixelId' != 'AW-12314555'
    )
  )::character varying;

说明:

  • protection_config::jsonb:将字符串类型转换为jsonb以便操作
  • jsonb_array_elements:展开trackingIds数组为行数据
  • jsonb_agg:将过滤后的元素重新聚合为数组
  • jsonb_set:把新的数组替换回原JSON结构的对应路径
  • 最后转换回character varying类型存回字段

需求2:完全移除pxg字段

直接使用-操作符删除指定键,再转换回原类型。

查询验证语句

SELECT (protection_config::jsonb - 'pxg') AS updated_protection_config
FROM ClickTrueTags;

实际更新语句

UPDATE ClickTrueTags
SET protection_config = (protection_config::jsonb - 'pxg')::character varying;

说明:

  • protection_config::jsonb - 'pxg':直接删除jsonb对象中的pxg键
  • 转换回character varying类型完成更新

内容的提问来源于stack exchange,提问作者elad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:58:22