在 json 列中选择一个值

问题描述 投票:0回答:1

我有一个名为 Metadata 的列,其中包含一系列具有这种结构的数据:

{“模板”:{“模板”:{“uuid”:“810f7345-e4d2-445b-843b-eb038uwh48b5”,“名称”:“finance_template_reminder_24h”},“语言”:“eng”,“国家/地区”:“ “}}

编写此查询时,我只想提取模板的名称。上面的这个名为finance_template_reminder_24h,但还有其他的。

如何在 select 语句中解压它。

样品:

select m.contact_id, m.metadata ->>'templating' -> 'name' as template
from messages m

错误:

Error running query: operator does not exist: text ->> unknown LINE 1: ...ery ID: adhoc */ select m.contact_id, m.metadata ->>'templa... ^ HINT: No operator matches the given name and argument types. You might need to add explicit type casts.

谢谢

sql mysql postgresql
1个回答
0
投票

要访问模板 -> 模板中的

name
字段,如果您有 json 类型列,则可以使用以下查询:

SELECT 
    m.contact_id, 
    m.metadata -> 'templating' -> 'template' ->> 'name' AS template_name
FROM messages m;
© www.soinside.com 2019 - 2024. All rights reserved.