名为“ likelihood”的列是一个JSON对象(键值)。
我有另一个表(叫它xyz
),其中包含 CustomerId 和 key (整数值)列。
我将根据 customerid 加入以上两个表,例如:
Select xyz.customerid, key, label from xyz join abc on xyz.customerid = abc.customerid
问题:
我想从表label
的列key
的JSON对象的表xyz
的{{1}}列中找到的密钥中找到likelihood
。
我发现的函数abc
的所有示例都传递了硬编码的密钥,而不是传递自数据库的某些动态密钥值。
答案 0 :(得分:0)
第一个问题是:我的JSON对象包含键,它们是整数值,而不是字母或单词。因此,为了引用以整数作为键的值,我们需要像这样记录下来:
JSON_EXTRACT(json_object, '$."int_key"')
这是我的解决方法:
Select xyz.customerid,key,JSON_EXTRACT(abc.likelihood,concat('$."',xyz.key,'"')) as label from xyz join abc on xyz.customerid = abc.customerid;