【问题标题】:Querying for a value out of a json field Postgres从 json 字段 Postgres 中查询一个值
【发布时间】:2021-03-31 23:17:58
【问题描述】:

我的数据库中有以下列,它是一个 postres jsonb 对象。我只是想从其中包含 json 字符串的 mytable 中获取 additional_data 的值。

select additional_data from mytable;  
{"latitude":"123", "longitude":"234"}
{"latitude":"567", "longitude":"890"}

我只是想为我的查询获取纬度的值,但我无法弄清楚确切的语法需要如何。我尝试执行以下操作

select latitude->>'additional_data' from mytable;
select latitude->'additional_data' from mytable;
select latitude#>>'additional_data' from mytable;

但是当我这样做时,我得到以下错误

SQL Error [42703]: ERROR: column "latitude" does not exist
Position: 8

但该列肯定存在。不知道我做错了什么。

【问题讨论】:

  • 我认为你的字段被颠倒了——试试SELECT additional_data->>'latitude' FROM mytable;
  • 那行得通。如果您可以将其写为答案,我将接受它作为解决方案。谢谢!

标签: sql json postgresql jsonb


【解决方案1】:

根据PostgreSQL documentation,需要引用运算符左侧的列,运算符右侧的JSON键:

select additional_data->>'latitude' from mytable;
select additional_data->'latitude' from mytable;
select additional_data#>>'latitude' from mytable;

【讨论】:

    猜你喜欢
    • 2014-07-05
    • 1970-01-01
    • 2023-03-22
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    相关资源
    最近更新 更多