首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql 8.0 -过滤的JSON查询

MySql 8.0 -过滤的JSON查询
EN

Stack Overflow用户
提问于 2021-03-25 16:34:39
回答 1查看 286关注 0票数 1

我有一个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过滤,那么推荐的工作是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-25 16:45:19

MySQL不完全支持jsonpath表达式。它不支持筛选表达式。对jsonpath的有限支持记录在这里:https://dev.mysql.com/doc/refman/8.0/en/json.html#json-path-syntax

我测试了你的数据:

代码语言:javascript
复制
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的更多信息

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66803834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档