[英]Mysql Json Extract - wild card selection of key
下面是我数据库中的 json blob
{
RootData: {
202003: {
201903: {
"abc": 123,
xyz: 456
},
data1: {
},
data2: {
}
}
}
}
现在我有一个查询在哪里提取节点201903
内的数据,如下所示
select blah blah,
JSON_EXTRACT(convert(columnname using utf8), '$.RootData."202003"."201903".abc') as blah
在上面的查询中,我的问题围绕着'$.RootData."202003"."201903".abc'
部分
我不想硬编码部分201903
并在通配符的帮助下寻找可以 select 节点的语法。
我尝试了以下选项但没有运气
'$.RootData."202003"."20*".abc'
'$.RootData."202003".[1].abc'
'$.RootData."202003".$.20*.abc'
不起作用,因为我猜它的语法不正确。 寻找正确的语法。 20 总是那个键的开始,我们可以依赖它。 它始终是第一把钥匙。
$.RootData."202003"**.abc
形式的路径应该会有所帮助。
参考 - https://www.db-fiddle.com/f/6g4qiekAU4i3J8iRoAZiCA/0
结果类型将是数组。 要获取第一个匹配结果,可以将结果嵌套在另一个JSON_EXTRACT
中,如下所示
select JSON_EXTRACT(JSON_EXTRACT(convert(data using utf8), '$.RootData."202003"**.abc'), '$[0]')
from rootdata;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.