我在postgresql中编写查询我已经将数据存储在一列的json格式中,现在我需要json的特定值
message_data:{"apiMessageId":"162fbbbe8f0e2a67","userEmail":"jack@liveonlinecloud.info","cloudId":1}
这是数据而我只想用userEmail 这是我的查询
SELECT id, process_id, process_state, cast(message_data->> \'userEmail\' AS VARCHAR) AS userEmail, inserted_at, completed_at
FROM realtimeincomingemailnotificationsqueue
where api_message_id = '162fbbbe8f0e2a67';
答案 0 :(得分:1)
https://www.postgresql.org/docs/current/static/functions-json.html
- >> text将JSON对象字段作为文本
(强调我的)
所以我不知道为什么你要将text
投射到varchar
,但如果你真的这样做,请使用
cast(message_data->> 'userEmail')::varchar