我有一个JSON,我正试图从这个值中提取一个值,具体来说,就是在评级信息部分下的Zip (期望值= 90703)。MySql 8支持JSON过滤器表达式吗?
杰森:
{ "quote_number":null,“条目”:{ "annual_amount":0.0,"pro_rata_amount":0.0,“名称”:“值信息”,“类别”:{“使用”:“单个家庭分离”,“邮编”:"51431",“地板覆盖物”:“地毯”},{ "annual_amount":0.0,"pro_rata_amount":0.0,“名称”:“评级信息”,“类别”:{“非气象损失的数量”:"0",“保护等级”:"2",“邮编”:"90703",“特殊危险接口区域”:"N“},”总计“:{ "annual_fees":0.0,"annual_premium":9.0 },"policy_id":null }
路径:$.items?(@.name==“评级信息”).categories.Zip代码
在通过以下站点进行测试时,当我获得数据时,路径似乎是正确的:https://jsonpath.com/。
如果MySql不支持JSON过滤,那么推荐的工作是什么?
乔
发布于 2021-03-25 16:45:19
MySQL不完全支持jsonpath表达式。它不支持筛选表达式。对jsonpath的有限支持记录在这里:https://dev.mysql.com/doc/refman/8.0/en/json.html#json-path-syntax
我测试了你的数据:
set @j = '{ ...your json... }';
select * from json_table(@j, '$.items[*]' columns(
name text path '$.name',
zip_code text path '$.categories."Zip Code"'
)) as j;
+--------------------+----------+
| name | zip_code |
+--------------------+----------+
| Value Information | 51431 |
| Rating Information | 90703 |
+--------------------+----------+然后,您可以在查询中添加WHERE子句,以获得所需的子句。
阅读有关JSON_TABLE():https://dev.mysql.com/doc/refman/8.0/en/json-table-functions.html的更多信息
https://stackoverflow.com/questions/66803834
复制相似问题