我有一个postgresql数据库,其中我有一个包含jsonb
对象的列。
我遇到了需要从json对象中提取单个键值对的情况。我目前不知道,也无法找到任何有关如何完成此操作的示例。
我有下表:
----------------------------------------------
| id | did | timestamp | data | db_timestamp |
----------------------------------------------
数据列是我的json对象,它包含的一个例子是:
{"n": 336372148490, "ac": 22.0, "al": 119.0, "be": 346.3, "la": 55.69707492, "lo": 12.58713834, "sa": 5, "sp": 2.6100767, "provider": "gps"}
所以我想做的是写一个查询,在其中我寻找一个键值对。我目前有以下查询,
SELECT data WHERE did = '357139052424715' and timestamp < 1466642640000
我想提取一个键值对。如何更改上述查询以仅提取"la": 55.69707492
?
答案 0 :(得分:1)
你可以这样做:
SELECT data->>'la' WHERE did = '357139052424715' and timestamp < 1466642640000
有关更多示例,请参阅:
http://clarkdave.net/2013/06/what-can-you-do-with-postgresql-and-json/