JSON_SEARCH
描述
该函数返回 JSON 文档中指定字符串的路径。
语法
JSON_SEARCH(json_doc, one_or_all, search_str[, escape_char[, path] ...])
说明
参数 json_doc 用于指定 JSON 文档,search_str 为搜索字符串参数,escape_char 参 数指定常量表达式,path 为路径参数。
如果任何参数为 NULL,则返回 NULL;如果文档中不存在路径或未找到指定字符串,也会返回 NULL。
对于 one_or_all 参数,可选值如下:
-
'one':在第一次匹配后搜索终止并返回一个路径字符串。 -
'all':搜索返回所有匹配的路径字符串,不会包含重复的路径。如果有多个字符串,它们会自动包裹为一个数组。数组元素的顺序不保证是有序的。
对于 search_str 参数,% 和 _ 字符与 LIKE 运算符的作用相同,含义如下:
-
%表示匹配任意数量的字符(包括零个字符)。 -
_表示正好匹配一个字符。
如果要在搜索字符串中指定 % 或 _字符,请在其前面加上转义字符。如果缺少 escape_char 参数或者为NULL,则转义字符默认值为 \。否则,escape_char 必须是一个空的常量或字符。
无论数据库的编码值为多少,search_str 和 path 总是作为 utf8mb4 字符串使用。
以下情况会发生报错:
-
json_doc参数指定的不是有效的 JSON 文档。 -
path参数不是有效的路径表达式。 -
one_or_all参数不为'one'或者'all'。 -
escape_char不是常量表达式。