Postgresql:如何在JSON中获取值,关键字为LIKE



我的表中有一列包含JSONstatuses_json:

{
"demoStatus" : "true",
"productionStatus": "false"
}

我想检索一个值,其中键像某个字符串。例如,如果我把";demo";,我想检索关键字demoStatus的值。

现在我可以在传递准确的密钥时检索值:

`statuses_json->>'productionStatus' = 'false' `;

提取密钥并对其运行查询:

select *
from json_object_keys('{
"demoStatus" : "true",
"productionStatus": "false"
}') k where k like '%demo%';

我没有足够新的postgresql版本,但jsonb_path_query看起来也很有趣。然后使用statuses_json->>(...)来提取相应的值。

select statuses_json from your_table
where statuses_json->>(
select prop
from json_object_keys(statuses_json) as prop
where prop like 'demo%'
) = 'false';

最新更新