MySQL中的JSON数据类型 6 JSON 路径语法

MySQL支持并在本手册其他地方描述的许多JSON函数(参见第12.18节"JSON函数")需要路径表达式才能识别JSON文档中的特定元素。路径由路径的范围和一个或多个路径腿组成。对于MySQL JSON函数中使用的路径,范围始终是正在搜索或以其他方式操作的文档,由前导字符表示。路径腿由句点字符 () 分隔。数组中的像元由 表示,其中N是非负整数。键的名称必须是双引号字符串或有效的 ECMAScript 标识符(请参阅ECMAScript 语言规范中的标识符名称和标识符)。路径表达式(如 JSON 文本)应使用 、 或 字符集进行编码。其他字符编码被隐式强制为 。完整的语法如下所示:$.[N]asciiutf8utf8mb4utf8mb4

pathExpression:
    scope[(pathLeg)*]

pathLeg:
    member | arrayLocation | doubleAsterisk

member:
    period ( keyName | asterisk )

arrayLocation:
    leftBracket ( nonNegativeInteger | asterisk ) rightBracket

keyName:
    ESIdentifier | doubleQuotedString

doubleAsterisk:
    '**'

period:
    '.'

asterisk:
    '*'

leftBracket:
    '['

rightBracket:
    ']'

如前所述,在MySQL中,路径的范围始终是正在操作的文档,表示为。您可以在 JSON 路径表达式中用作文档的 synonynm。$'$'

注意

某些实现支持 JSON 路径作用域的列引用;MySQL 8.0 不支持这些。

通配符和令牌的使用方式如下:***

  • .*表示对象中所有成员的值。

  • [*]表示数组中所有单元格的值。

  • [prefix]**suffix表示以前缀开头并以后缀结尾的所有路径。前缀是可选的,而后缀是必需的;换句话说,路径可能不会以 结尾。**

    此外,路径可能不包含 序列 。***

有关路径语法示例,请参阅将路径作为参数的各种 JSON 函数的说明,例如JSON_CONTAINS_PATH()、JSON_SET()JSON_REPLACE()。 有关包含 和 通配符使用的示例,请参阅JSON_SEARCH()函数的说明。***

MySQL 8.0还支持使用关键字(例如)的JSON数组子集的范围表示法,以及关键字作为数组最右侧元素的同义词。有关详细信息和示例,请参阅搜索和修改 JSON 值to$[2 to 10]last

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值