如何输入动态密钥到json_extract mysql?

时间:2019-11-28 10:46:08

标签: mysql sql json mysql-8.0 json-extract

我有一张桌子(称为abc),如下所示: enter image description here

名为“ 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的所有示例都传递了硬编码的密钥,而不是传递自数据库的某些动态密钥值。

1 个答案:

答案 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;