MySQL的JSON聚合函數JSON_AGG()
用于將多個值聚合成一個JSON數組。其基本語法如下:
JSON_AGG(value [, value] ...)
其中value
是要聚合的值,可以是JSON對象、JSON數組或其他有效的JSON值。JSON_AGG()
函數將這些值放入一個JSON數組中并返回結果。
以下是一個簡單的示例,說明如何使用JSON_AGG()
函數:
CREATE TABLE example (
id INT PRIMARY KEY,
name VARCHAR(255),
age INT
);
INSERT INTO example (id, name, age) VALUES
(1, 'Alice', 30),
(2, 'Bob', 25),
(3, 'Charlie', 35);
SELECT JSON_AGG(JSON_OBJECT('id', id, 'name', name, 'age', age)) AS result
FROM example;
此查詢將返回一個包含所有示例行ID、名稱和年齡的JSON數組:
[
{"id": 1, "name": "Alice", "age": 30},
{"id": 2, "name": "Bob", "age": 25},
{"id": 3, "name": "Charlie", "age": 35}
]
如果需要將多個JSON對象聚合成一個JSON數組,可以使用JSON_ARRAYAGG()
函數。語法如下:
JSON_ARRAYAGG(value [, value] ...)
以下是一個使用JSON_ARRAYAGG()
函數的示例:
SELECT JSON_ARRAYAGG(JSON_OBJECT('id', id, 'name', name, 'age', age)) AS result
FROM example;
此查詢將返回與前面示例相同的結果,但使用JSON_ARRAYAGG()
函數:
[
{"id": 1, "name": "Alice", "age": 30},
{"id": 2, "name": "Bob", "age": 25},
{"id": 3, "name": "Charlie", "age": 35}
]