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

MariaDB 提供了 JSON_VALUE() 函数,它可以从 JSON 文档中提取一个标量值。

发布于

在处理 JSON 数据时,我们经常需要从复杂的 JSON 结构中提取特定的值。MariaDB 提供了 JSON_VALUE() 函数,它可以从 JSON 文档中提取一个标量值。本文将详细介绍 JSON_VALUE() 函数的用法,并通过一系列实例来展示其在实际应用中的作用。

语法

JSON_VALUE() 函数的语法如下:

JSON_VALUE(json_doc, path)
  • json_doc 是一个 JSON 格式的字符串或者列。
  • path 是一个 JSON 路径表达式,指定 json_doc 中的数据位置。

函数返回指定路径的 JSON 标量值。

实例

提取 JSON 对象中的字符串

SET @json = '{"name": "Alice", "age": 25}';
SELECT JSON_VALUE(@json, '$.name');

输出结果为:

+-----------------------------+
| JSON_VALUE(@json, '$.name') |
+-----------------------------+
| Alice                       |
+-----------------------------+

提取 JSON 对象中的数字

SELECT JSON_VALUE(@json, '$.age');

输出结果为:

+----------------------------+
| JSON_VALUE(@json, '$.age') |
+----------------------------+
| 25                         |
+----------------------------+

提取嵌套 JSON 对象中的值

SET @json = '{"person": {"name": "Alice", "age": 25}, "city": "Paris"}';
SELECT JSON_VALUE(@json, '$.person.name');

输出结果为:

+------------------------------------+
| JSON_VALUE(@json, '$.person.name') |
+------------------------------------+
| Alice                              |
+------------------------------------+

提取 JSON 数组中的元素

SET @json = '["apple", "banana", "cherry"]';
SELECT JSON_VALUE(@json, '$[1]');

输出结果为:

+---------------------------+
| JSON_VALUE(@json, '$[1]') |
+---------------------------+
| banana                    |
+---------------------------+

从表中查询并提取 JSON 值

首先,我们创建一个表并插入数据。

CREATE TABLE user_profiles (id INT, profile JSON);
INSERT INTO user_profiles VALUES (1, '{"name": "Alice", "age": 25}');

然后,我们可以提取表中的 JSON 数据。

SELECT id, JSON_VALUE(profile, '$.name') AS name FROM user_profiles;

输出结果为:

+------+-------+
| id   | name  |
+------+-------+
|    1 | Alice |
+------+-------+

相关函数

  • JSON_EXTRACT() 函数:此函数用于从 JSON 文档中提取指定路径的值。
  • JSON_SET() 函数:此函数用于更新或添加 JSON 文档中的数据。
  • JSON_REPLACE() 函数:此函数用于替换 JSON 文档中的数据。

结论

JSON_VALUE() 函数是 MariaDB 中处理 JSON 数据时非常有用的工具。它提供了一种快速有效的方法来提取 JSON 文档中的标量值,无论是从简单的 JSON 对象还是复杂的嵌套结构中。通过本文的实例,我们可以看到 JSON_VALUE() 在实际应用中的重要性和实用性。无论是进行数据分析还是优化数据库查询,JSON_VALUE() 都是一个非常有用的函数。