json_extract mysql 如何输入动态键?

How to input dynamic key to json_extract mysql?

我有一个 table(称之为 abc),如下所示:

名为“可能性”的列是一个 JSON 对象(键值)。 我有另一个 table(我们称之为 xyz),其中包含 CustomerIdkey(整数值)列。 我根据 customerid 加入上面的两个 table,例如: Select xyz.customerid, key, label from xyz join abc on xyz.customerid = abc.customerid

问题: 我想根据 table xyzkey 列中提供的密钥,从 likelihood 列的 JSON 对象中找到 label table abc。 我发现的函数 JSON_EXTRACT 的所有示例都传递了硬编码密钥,而不是从数据库中获取的动态密钥值。

第一个问题是:我的 JSON 对象包含 keys,它们是 integer 值而不是字母或单词。因此,为了以整数作为键来引用值,我们需要将其写下来: 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;