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

PostgreSQL查询:如何从同表现有JSON值设置列值

问题解决办法

你的查询不生效主要有两个问题:

1. NULL值判断错误

PostgreSQL中不能用=来判断NULL,因为NULL代表未知值,任何与NULL的相等比较结果都是NULL(无法满足条件)。必须用IS NULL来检测NULL值。

2. INSERT语句列名不匹配

你提供的INSERT语句里用了single_item列,但表结构里对应的目标列是column_name,这会导致插入失败,后续更新自然找不到对应数据。

修正后的完整操作步骤:

  1. 确保表结构和插入语句正确:
CREATE TABLE table_name (
    data jsonb null,
    column_name text null
);

INSERT INTO table_name (data, column_name)
VALUES ('{"object_key_name": "hello_world"}', null);
  1. 执行正确的UPDATE语句:
UPDATE
  table_name
SET
  column_name = data ->> 'object_key_name'
WHERE
  column_name IS NULL;

执行完成后,column_name列会被填充为JSON字段里object_key_name对应的值,后续直接访问该列即可,无需再解析JSON。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:42:02