postgresql – 如何在Postgres中仅从jsonb类型中选择特定键的值

postgresql – 如何在Postgres中仅从jsonb类型中选择特定键的值,第1张

概述我有一个jsonb列,其数据如下. [ {"key": "unit_type", "value": "Tablet", "display_name": "Unit Type"}, {"key": "pack_type", "value": "Packet", "display_name": "Pack Type"}, {"key": "units_in_pack", "value 我有一个Jsonb列,其数据如下. @H_404_7@

@H_404_7@

[   {"key": "unit_type","value": "tablet","display_name": "Unit Type"},{"key": "pack_type","value": "Packet","display_name": "Pack Type"},{"key": "units_in_pack","value": "60","display_name": "Units in Pack"},{"key": "item_unit","value": "","display_name": "Item unit"},{"key": "item_size","value": "1","display_name": "Item Size"},{"key": "details","display_name": "Details"},{"key": "slug","value": "otc7087","display_name": "Slug"}]
@H_404_7@我想从数组中获取一个名为slug的键的值字段,这样当我对表执行select查询时,我会从列中获取此特定值.对于上面的行,当我从表中选择名称,slug,price时,我应该得到med1,otc7087,100作为输出.我无法为此事构建查询.我可以获取所有键或所有值,但如何在同一个选择查询中选择特定键?

@H_404_7@或者我只是如何选择表格中的slu ???那会回答.

解决方法 我相信你的Json更有条理,
只需尝试Jsonb_to_recordset @H_404_7@

@H_404_7@对于前:

@H_404_7@

select * from Json_to_recordset('[   {"key": "unit_type","display_name": "Slug"}]') as x(key int,value text,display_name text);
@H_404_7@它会将Jsonb转换为带有key,value,display_name作为列的表,然后你可以触发任何类型的查询,它也适用于提取键,而@Craig Ringer建议你不能将它转换成表喜欢的事情和解雇复杂的选择查询,如不在,!=,范围查询,ilike将是非常困难,可能性能较差.

总结

以上是内存溢出为你收集整理的postgresql – 如何在Postgres中仅从jsonb类型中选择特定键的值全部内容,希望文章能够帮你解决postgresql – 如何在Postgres中仅从jsonb类型中选择特定键的值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1161768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存