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

sol*_*994 4 mysql sql json mysql-8.0 json-extract

我有一张表(称之为abc),如下所示: 在此输入图像描述

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

问题:我想从表中列的 JSON 对象中查找label表列中提供的键。我发现的所有函数示例都传递硬编码密钥,而不是从数据库获取的密钥的某些动态值。keyxyzlikelihoodabcJSON_EXTRACT

sol*_*994 6

第一个问题是:我的 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;