SQLite json_group_array() 函数使用指南

来源:这里教程网 时间:2026-03-25 18:15:09 作者:

SQLite

json_group_array()
函数是一个聚合函数,它返回一个包含了分组中的所有的值的 JSON 数组。

类似的,

json_group_object()
函数返回一个包含了分组中指定列组成的对象。

json_group_array()
函数与
group_concat()
函数类似,不同的是
group_concat()
函数返回的是一个包含了所有值的字符串。

json_group_array()
语法

这里是 SQLite

json_group_array()
的语法:

json_group_array(expr)

参数

expr
必需的。一个列名或者表达式。

返回值

SQLite

json_group_array()
函数返回一个数组,它包含了指定的分组中的指定表达式或者列中的所有值。

json_group_array()
示例

这里列出了几个常见的

json_group_array()
用法示例。

基本用法

这个示例说明了 SQLite

json_group_array()
函数的基本用法。

SELECT json_group_array('Hello');

json_group_array('Hello')-------------------------["Hello"]

这种用法没有太多的实用价值。 SQLite

json_group_array()
一般用在表的聚合查询中。

从表中使用
json_group_array()
返回数组

为了演示

json_group_array()
的用法,我们使用以下
UNION
语句模拟一个表:

SELECT 'Tim' name, 'Football' hobbyUNIONSELECT 'Tim' name, 'Baseball' hobbyUNIONSELECT 'Tom' name, 'Piano' hobbyUNIONSELECT 'Tom' name, 'violin' hobby;

name  hobby----  --------Tim   BaseballTim   FootballTom   PianoTom   violin

这里,我们拥有了关于用户爱好的一些行。其中,每行中是用户的一个爱好。

如果我们需要将每个人的爱好信息都放在一行里,并且把每个人的爱好都放在一个数组中,请使用以下语句:

SELECT    t.name,    json_group_array(t.hobby) hobbiesFROM (    SELECT 'Tim' name, 'Football' hobby    UNION    SELECT 'Tim' name, 'Baseball' hobby    UNION    SELECT 'Tom' name, 'Piano' hobby    UNION    SELECT 'Tom' name, 'violin' hobby) tGROUP BY t.name;

name  hobbies----  -----------------------Tim   ["Baseball","Football"]Tom   ["Piano","violin"]

这里,我们使用

GROUP BY
子句 和
json_group_array()
函数将同一个
name
的爱好信息都放在
hobbies
列的 JSON 数组中。

相关推荐

热文推荐