2

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

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

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

4

1 回答 1

4

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

于 2019-11-28T16:07:27.607 回答