【发布时间】:2015-09-17 08:54:42
【问题描述】:
我的数据库中有一个表,其中包含字符变化列,并且该列具有 json。我需要编写一个查询,它会以某种方式将此 json 解析为单独的列。
我找到了 json_each 函数 here,但我不明白如何使用它。
【问题讨论】:
-
PostgreSQL 从 9.2 版本开始支持原生 JSON 数据类型。
标签: json postgresql
我的数据库中有一个表,其中包含字符变化列,并且该列具有 json。我需要编写一个查询,它会以某种方式将此 json 解析为单独的列。
我找到了 json_each 函数 here,但我不明白如何使用它。
【问题讨论】:
标签: json postgresql
【讨论】:
data::jsonb->'foo' 会稍微高效一些(使用 'json' 它实际上会为每个元素访问重新解析)。
data::jsonb 也可以。只有将其包装在子查询中并在外部查询中多次引用内部查询的转换结果时,您才会受益。
trim('"' FROM (data::json->'name')::text) 删除引号
太棒了,谢谢分享。我发现您可以更深入地了解:
SELECT
id,
data::json->'name' as name,
data::json->'author' ->> 'last_name' as author
FROM books;
【讨论】: