sol*_*994 4 mysql sql json mysql-8.0 json-extract
名为“likelihood”的列是一个 JSON 对象(键值)。我有另一个表(我们称之为xyz),其中包含CustomerId和key(整数值)列。我根据customerid连接上面的两个表,例如:
Select xyz.customerid, key, label from xyz join abc on xyz.customerid = abc.customerid
问题:我想从表中列的 JSON 对象中查找label表列中提供的键。我发现的所有函数示例都传递硬编码密钥,而不是从数据库获取的密钥的某些动态值。keyxyzlikelihoodabcJSON_EXTRACT
第一个问题是:我的 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;