SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite JSON_GROUP_ARRAY()

SQLite json_group_array() функцията е агрегатна функция, която връща JSON масив, състоящ се от всички стойности в агрегирането.

С други думи, той изгражда масив от стойностите, предоставени от неговия аргумент.

Синтаксис

json_group_array(X) 

Където X представлява елемента/ите, от които ще се състои полученият масив.

Пример

Ето един прост пример за демонстрация:

SELECT json_group_array( "Fritz" ); 

Резултат:

["Fritz"]

Можем да видим, че е върнат масив със стойността, която предоставихме.

Истинската сила на тази функция обаче се демонстрира в сценарии, които използват обобщени данни (като в примерите за база данни по-долу). В крайна сметка можехме просто да използваме json_array() функция за горния пример:

SELECT json_array( "Fritz" ); 

Резултат:

["Fritz"]

Както споменахме, истинската сила на тази функция е в работата с обобщени данни. Следователно, json_group_array() обикновено се използва при запитване към база данни.

Пример за база данни

Да предположим, че имаме следната таблица:

SELECT * FROM Pets; 

Резултат:

<пред>+-------+--------+-------+| PetId | Име на домашни любимци | TypeId |+-------+--------+-------+| 1 | Омир | 3 || 2 | Yelp | 1 || 3 | Пух | 2 || 4 | Четка | 4 |+-------+--------+-------+

Виждаме, че има три колони и можем да видим имената им.

Можем да използваме json_group_array() така:

SELECT json_group_array(TypeId)
FROM Pets; 

Резултат:

[3,1,2,4]

Тук създадох масив, който се състои от всички TypeId стойности.

Можем да отидем още по-далеч и да предадем друга JSON функция като аргумент на json_group_array() .

Например, ако искаме да създадем JSON обект за всеки ред в базата данни, можем да използваме json_object() функция на масата по следния начин:

SELECT json_object( 
    'PetId', PetId, 
    'PetName', PetName,
    'TypeId', TypeId 
    )
FROM Pets; 

Резултат:

{"PetId":1,"PetName":"Homer","TypeId":3}{"PetId":2,"PetName":"Yelp","TypeId":1}{"PetId":3,"PetName":"Fluff","TypeId":2}{"PetId":4,"PetName":"Brush","TypeId":4}

След това можем да използваме json_group_array() функция за предоставяне на външен масив:

SELECT json_group_array( 
        json_object(
        'PetId', PetId, 
        'PetName', PetName,
        'TypeId', TypeId 
        )
    )
FROM Pets; 

Резултат:

[{"PetId":1,"PetName":"Homer","TypeId":3},{"PetId":2,"PetName":"Yelp","TypeId":1},{" PetId":3,"PetName":"Fluff","TypeId":2},{"PetId":4,"PetName":"Brush","TypeId":4}]

Сега всички JSON документи, създадени от json_object() са затворени в масив, създаден от json_group_array() .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite JSON_QUOTE()

  2. Как мога да опресня/отворя отново SQLite база данни след възстановяването й, когато използвам сингълтон за помощника на базата данни

  3. Проблем с Android SQLite - таблица ... няма именувана колона

  4. Какво да избера - JSON или SQLite?

  5. Добавете данни към базата данни sqlite само веднъж и прочетете няколко пъти