kad*_*ian 4 sql postgresql json
在我的表中,mytable我有一个名为的 json 字段data,并且我插入了带有大量键和值的 json。
我知道可以像这样选择单个字段:
SELECT data->'mykey' as mykey from mytable
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能获得一定深度上所有 json 键的概览呢?我本来期望类似的东西
SELECT data->* from mytable
Run Code Online (Sandbox Code Playgroud)
但这行不通。有类似的东西吗?
您可以使用该json_object_keys()函数获取某个值的所有顶级键json:
SELECT keys.*
FROM mytable, json_object_keys(mytable.data) AS keys (mykey);
Run Code Online (Sandbox Code Playgroud)
如果您想进行更深层次的搜索,请首先json使用#>运算符从值中提取更深层次的内容:
SELECT keys.*
FROM mytable, json_object_keys(mytable.data #> '{level1, level2}') AS keys (mykey);
Run Code Online (Sandbox Code Playgroud)
请注意,该函数返回 a set of text,因此您应该将该函数作为行源调用。
如果您使用jsonb数据类型,则使用jsonb_object_keys()函数。
| 归档时间: |
|
| 查看次数: |
5363 次 |
| 最近记录: |