查询 json 字段 Postgres 中的值

Querying for a value out of a json field Postgres

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

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

但那一栏肯定存在。不确定我做错了什么。

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

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