我有一个表格参数有2列id(整数)和param_specs(文本)。如何在postgres中从json数组中提取特定元素?
实际param_specs柱看起来像上述PIC(为了简化它检查以下内容: - )
param_specs
[
{"paramName":"param1",
"type":"string",
"defaultValue":"tomcat7",
"optional":false,
"deploymentParam":false},
{"paramName":"param123PreStopAction",
"type":"path",
"defaultValue":"HELLO",
"optional":false,
"deploymentParam":false}
]
因此,它是JSON数组的数组,我想获取的paramName
param123PreStopAction
即defaultValue
字段HELLO 。
**** ****编辑作为 可这是我的表称为参数看起来就像两列我想每一行的默认值在参数表,其中PARAMNAME图像中可以看出LIKE(%PostStopAction)或(%PreStopAction)检查图像(即PARAMNAME应实际PARAMNAME值,例如,内要么PreStopAction或PostStopAction“mytomcat7 PostStopAction”大胆的价值观和获取其默认值即“后停止')
可能有一些行中不会有任何json有preStop或PostStop paramName像图像中的第3行
有人可以帮我查询吗?
由于JGH一些建议如下: -
选择 “默认值” FROM参数 CROSS JOIN横向 json_to_recordset(a.param_spec :: JSON)为X( “PARAMNAME” 文本, “默认值”文本) WHERE“PARAMNAME” LIKE“%PreStopAction” OR‘PARAMNAME’LIKE‘%PostStopAction’
嗨JGH感谢队友,虽然上述方案的作品,但不是通过JSON数组在内部查询我想是选择“默认值”,从json_to_recordset( ' 从参数中选择param_specs :: json)作为x(“paramName”text,“defaultValue”text) 其中“paramName”='param123PreStopAction';你能提出一些建议吗? – 100MIL
请看到,利用侧向的加入 – JGH
再次感谢JGH编辑,但在试图查询选择“默认值” FROM参数 CROSS JOIN横向 json_to_recordset(a.param_specs :: JSON)为x(“PARAMNAME”文本,“defaultValue”text) WHERE“paramName”='param123PreStopAction';它通过给消息失败(json类型的输入语法无效)。请注意表名是参数。任何想法为什么我面临这个问题? – 100MIL