排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
MySQL数据类型 - JSON数据类型 (3)
MySQL数据类型 - JSON数据类型 (3)
数据库杂货铺
2021-04-12
233
最右边的数组元素
。MySQL支持last关键字,作为数组中最后一个元素的索引的同义词。
last - N
形式的表达式可用于相对寻址和范围定义,如下所示:
如果不是针对数组计算路径,则求值结果与将该值包装在单个元素数组中的结果相同:
可以使用带有JSON列标识符和JSON路径表达式 column->path 的形式,用作JSON_EXTRACT(column, path)的同义词。
有些函数获取现有的JSON文档,以某种方式对其进行修改,然后返回修改后的文档。路径表达式指示文档中要进行更改的位置。例如,JSON_SET()、JSON_INSERT()和JSON_REPLACE()函数都接受一个JSON文档,外加一个或多个成对儿的路径值,这些路径值描述了在何处修改文档以及要改成什么值。这些函数在处理文档中现有值和不存在值的方式上有所不同。
考虑一下这个文件:
JSON_SET()替换已存在路径的值,并为不存在的路径添加值:
在本例中,路径$[1].b[0]选择一个现有值(true),该值将替换为路径参数(1)后面的值。路径$[2][2]不存在,因此相应的值(2)将添加到由$[2]选择的值中。
JSON_INSERT()添加新值,但不替换现有值:
JSON_REPLACE() 替换现有值并忽略新值:
成对儿路径值从左到右计算。通过计算一对儿路径值生成文档,这个文档又成为下一对路径值计算的基础。
JSON_REMOVE()接受一个JSON文档和一个或多个指定要从文档中删除的值的路径。返回值为原始文档减去文档中存在的路径选择的值:
路径具有以下效果:
●
$[2]匹配[10,20]并将其删除。
●
$[1].b[1]的第一个实例在b元素中匹配false并将其删除。
●
$[1].b[1]的第二个实例与任何内容都不匹配:该元素已被删除,路径不再存在,所以不起作用。
JSON路径语法
MySQL支持的许多JSON函数需要一个路径表达式来标识JSON文档中的特定元素。路径由路径的范围和一个或多个路径分支组成。对于MySQL JSON函数中使用的路径,范围始终是要搜索或以其他方式操作的文档,用前导的$字符表示。路径分支由句点字符(.)分隔。数组中的成员用[N]表示,其中N是非负整数。键的名称必须是带有双引号的字符串或有效的ECMAScript标识符(请参阅ECMAScript语言规范中的标识符名称和标识符)。路径表达式,就像JSON文本,应使用ascii、utf8或utf8mb4字符集进行编码。其他字符编码被隐式强制为utf8mb4。完整的语法如下所示:
如前所述,在MySQL中,路径的范围一直是被操作的文档,用$表示。可以在JSON路径表达式中将'$'当作文档的同义词。
通配符*和**标记的用法如下:
●
.*表示对象中所有成员的值。
●
[*]表示数组中所有成员的值。
●
[prefix]**suffix表示以prefix开头、以suffix结尾的所有路径。prefix是可选的,suffix是必需的;换句话说,路径不能以**结尾。
另外,路径不能包含序列***。
有关路径语法示例,请参考将路径作为参数的各种JSON函数的说明,例如JSON_CONTAINS_PATH()、JSON_SET()和JSON_REPLACE()。有关使用*和**通配符的示例,请参阅JSON_SEARCH()函数的说明。
MySQL 8.0.2及更高版本还支持JSON数组使用 to 关键字获得子集(例如 $[2 to 10]),last关键字作为数组最右边元素同义词这些范围表示法。
官方文档地址:
https://dev.mysql.com/doc/refman/8.0/en/json.html
mysql
文章转载自
数据库杂货铺
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨