MariaDB JSON_EXISTS() 函数的基础用法与实例

MariaDB JSON_EXISTS() 函数是一个用于检查给定的 JSON 文档中是否存在指定路径的函数。

发布于

MariaDB JSON_EXISTS() 函数是一个用于检查给定的 JSON 文档中是否存在指定路径的函数。它可以接受两个参数,分别表示一个 JSON 文档和一个 JSON 路径。该函数返回一个布尔值,表示 JSON 文档中是否存在该路径。如果参数中有非 JSON 值,那么该函数会返回 NULL

语法

MariaDB JSON_EXISTS() 函数的语法如下:

JSON_EXISTS(json_doc, path)

其中:

  • json_doc 是一个 JSON 文档,可以是一个 JSON 字符串,也可以是一个 JSON 列。
  • path 是一个 JSON 路径,表示要检查的位置。

实例

下面是一些使用 MariaDB JSON_EXISTS() 函数的实例。

检查一个简单的 JSON 文档中是否存在一个属性

假设我们有一个 JSON 文档,表示一个人的信息:

SET @json = '{"name": "Alice", "age": 18, "hobbies": ["reading", "music", "travel"]}';

我们可以使用 MariaDB JSON_EXISTS() 函数,检查这个 JSON 文档中是否存在 name 属性:

SELECT JSON_EXISTS(@json, "$.name") AS result;

运行结果如下:

+--------+
| result |
+--------+
| 1      |
+--------+

这表示这个 JSON 文档中存在 name 属性,所以该函数返回 1。

检查一个 JSON 文档中是否存在一个不存在的路径

假设我们有一个 JSON 文档,表示一个电影的评分:

SET @json = '{"title": "The Matrix", "rating": 8.7, "genres": ["Action", "Sci-Fi", "Thriller"], "year": 1999}';

我们可以使用 MariaDB JSON_EXISTS() 函数,检查这个 JSON 文档中是否存在 director 属性:

SELECT JSON_EXISTS(@json, "$.director") AS result;

运行结果如下:

+--------+
| result |
+--------+
| 0      |
+--------+

这表示这个 JSON 文档中不存在 director 属性,所以该函数返回 0。

相关函数

MariaDB JSON_EXISTS() 函数与以下函数有一定的关联:

  • JSON_CONTAINS() 函数:用于检查一个 JSON 文档是否包含另一个 JSON 值的函数。它可以接受两个或三个参数,分别表示一个 JSON 文档,一个 JSON 值,和一个可选的 JSON 路径。

  • JSON_CONTAINS_PATH() 函数:用于检查一个 JSON 文档是否包含一个或多个 JSON 路径的函数。它可以接受三个或更多个参数,分别表示一个 JSON 文档,一个模式,和一个或多个 JSON 路径。该函数返回一个布尔值,表示第一个 JSON 文档是否包含所有或任意一个 JSON 路径,取决于第二个参数的值。如果参数中有非 JSON 值,那么该函数会返回 NULL

  • JSON_OVERLAPS() 函数:用于检查两个 JSON 文档是否有重叠的元素的函数。它可以接受两个参数,分别表示两个 JSON 文档,可以是 JSON 字符串,也可以是 JSON 列。该函数返回一个布尔值,表示两个 JSON 文档是否有重叠的元素。如果参数中有非 JSON 值,那么该函数会返回 NULL

  • JSON_SEARCH() 函数:用于在一个 JSON 文档中搜索一个给定的字符串的函数。它可以接受三个或更多个参数,分别表示一个 JSON 文档,一个模式,一个搜索字符串,和一个或多个可选的 JSON 路径。该函数返回一个或多个 JSON 路径,表示搜索字符串在 JSON 文档中的位置。如果参数中有非 JSON 值,或者没有找到匹配的字符串,那么该函数会返回 NULL

结论

MariaDB JSON_EXISTS() 函数是一个用于检查给定的 JSON 文档中是否存在指定路径的函数。它可以接受两个参数,分别表示一个 JSON 文档和一个 JSON 路径。该函数返回一个布尔值,表示 JSON 文档中是否存在该路径。如果参数中有非 JSON 值,那么该函数会返回 NULL。该函数可以用于对 JSON 数据进行精确的定位,增加其可操作性和可查询性。