VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

JSON_SEARCH

功能描述

JSON_SEARCH函数返回JSON文档中指定字符串的路径。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时支持(即数据库初始化时指定DBCOMPATIBILITY='B')。
  • 转义符如果为boolean型相当于 NULL,默认\为转义符,可以直接输入个位数整型作为转义符。
  • 目标json文件和目标字符串不能为空,路径不能含空,如果path不存在则返回空。

语法格式

JSON_SEARCH(json_doc, one_or_all, search_str[, escape_char[, path] ...])

参数说明

  • json_doc

    JSON文档,它可以是一个JSON字符串,或者一个JSON列。

  • search_str

    搜索字符串参数。

    可以直接输入整型、浮点型、boolean型进行匹配,但是只能匹配目标文件中的字符串,支持%字符串模糊查询。

  • escape_char

    指定常量表达式。

  • path

    路径参数。

  • one_or_all

    one_or_all只能输入one或all。

    • one:在第一次匹配后搜索终止并返回一个路径字符串。
    • all:搜索返回所有匹配的路径字符串,不会包含重复的路径。如果有多个字符串,它们会自动包裹为一个数组。数组元素的顺序不保证是有序的。

示例

select json_search('"abc"','one','abc',true); 
select json_search('"1.2"','one',1.2);
select json_search('{"a":[{"b":["abc","abc"]},"ac"],"c":["abbc","abcc"]}','all','a%c',null,'$.*[*]');

返回结果为:

 json_search
-------------
 "$"
(1 row)

 json_search
-------------
 "$"
(1 row)

                         json_search
--------------------------------------------------------------
 ["$.a[0].b[0]", "$.a[0].b[1]", "$.a[1]", "$.c[0]", "$.c[1]"]
(1 row)