📜  mariadb JSON_EXTRACT - SQL (1)

📅  最后修改于: 2023-12-03 14:44:09.024000             🧑  作者: Mango

MariaDB JSON_EXTRACT - SQL

简介

在 MariaDB 数据库中,JSON 数据类型被广泛应用,并且提供了多个函数来处理 JSON 数据。其中之一就是 JSON_EXTRACT 函数,用于从 JSON 字符串中提取特定的数据。JSON_EXTRACT 函数接受两个参数:一个是 JSON 字符串,另一个是要提取的路径。

语法
JSON_EXTRACT(json_doc, path)
参数说明
  • json_doc:要提取数据的 JSON 字符串。
  • path:提取路径,指定要提取的 JSON 数据的位置。
示例

假设有一个名为 employees 的表,其中包含一个名为 details 的 JSON 字段,如下所示:

+----+--------------------------------------+
| id | details                              |
+----+--------------------------------------+
| 1  | {"name": "John", "age": 30, "city": "New York"} |
| 2  | {"name": "Jane", "age": 35, "city": "Los Angeles"} |
+----+--------------------------------------+
提取单个键的值

要提取 JSON 字符串中的单个键的值,可以使用 JSON_EXTRACT 函数。例如,要提取 name 键的值,可以执行以下查询语句:

SELECT JSON_EXTRACT(details, '$.name') AS employee_name
FROM employees;

返回结果:

+---------------+
| employee_name |
+---------------+
| "John"        |
| "Jane"        |
+---------------+
提取嵌套键的值

如果 JSON 字符串中包含嵌套的对象,可以使用 . 访问其子键。例如,要提取 details 字段中的 city 键的值,可以执行以下查询语句:

SELECT JSON_EXTRACT(details, '$.city') AS employee_city
FROM employees;

返回结果:

+--------------+
| employee_city|
+--------------+
| "New York"   |
| "Los Angeles"|
+--------------+
提取数组元素

如果 JSON 字符串中包含数组,则可以使用 [index] 访问特定位置的元素。例如,假设 details 字段中包含一个名为 skills 的数组,可以通过以下查询语句提取 skills 数组的第一个元素:

SELECT JSON_EXTRACT(details, '$.skills[0]') AS employee_first_skill
FROM employees;

返回结果:

+---------------------+
| employee_first_skill|
+---------------------+
| "JavaScript"        |
| "Java"              |
+---------------------+
总结

MariaDB 的 JSON_EXTRACT 函数提供了强大的功能,可以轻松从 JSON 字符串中提取特定的数据。无论是提取单个键的值、嵌套键的值,还是提取数组元素,都可以通过简单的 JSON_EXTRACT 函数完成。