MySQL JSON_ARRAY() 函数使用指南

MySQL JSON_ARRAY() 函数返回一个包含了所有参数的 JSON 数组。

JSON_ARRAY() 语法

这里是 MySQL JSON_ARRAY() 的语法:

JSON_ARRAY(value1[, value2[, ...]])

参数

value1[, value2[, ...]]
可选的。一些值,他们将被放在 JSON 数组中。

返回值

JSON_ARRAY() 函数评估参数中的所有的值,并返回一个包含了所有参数的 JSON 数组。

这里可能有一些转换发生:

  • TRUE 被转换为 true
  • FALSE 被转换为 false
  • NULL 被转换为 null
  • 日期,时间,日期时间 被转换为 字符串

JSON_ARRAY() 示例

这里列出了几个常见的 JSON_ARRAY() 示例。

示例 1

SELECT JSON_ARRAY(123, 'abc', NULL, TRUE, FALSE, NOW());
+---------------------------------------------------------------+
| JSON_ARRAY(123, 'abc', NULL, TRUE, FALSE, NOW())              |
+---------------------------------------------------------------+
| [123, "abc", null, true, false, "2022-04-18 07:47:23.000000"] |
+---------------------------------------------------------------+

包含数组的数组

SELECT JSON_ARRAY(JSON_ARRAY(123, 456), JSON_ARRAY('abc', 'dec'));
+------------------------------------------------------------+
| JSON_ARRAY(JSON_ARRAY(123, 456), JSON_ARRAY('abc', 'dec')) |
+------------------------------------------------------------+
| [[123, 456], ["abc", "dec"]]                               |
+------------------------------------------------------------+

这里, 我们使用了 JSON_ARRAY() 的结果作为 JSON_ARRAY() 的参数。

包含对象的数组

SELECT JSON_ARRAY(
        JSON_OBJECT('name', 'Jim', 'age', 20),
        JSON_OBJECT('name', 'Tim', 'age', 18)
    ) AS objct_array;
+----------------------------------------------------------+
| objct_array                                              |
+----------------------------------------------------------+
| [{"age": 20, "name": "Jim"}, {"age": 18, "name": "Tim"}] |
+----------------------------------------------------------+

这里, 我们使用了 JSON_OBJECT() 的结果作为 JSON_ARRAY() 的参数。