文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL数据类型 - JSON数据类型 (3)

2021-03-13 22:51

关注


	MySQL数据类型 - JSON数据类型 (3)
[数据库教程]

最右边的数组元素。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数据类型 - JSON数据类型 (3)

原文地址:https://blog.51cto.com/15023289/2560980

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯