Как сгенерировать JSON с вложенными элементами из MySQL

#mysql #sql #aggregate-functions #mysql-json

#mysql #sql #агрегатные функции #mysql-json

Вопрос:

У меня есть такая таблица:

   ---- ------- ------- --------------  
 | id | title | city  | street       |  
  ---- ------- ------- --------------  
 | 1  | First | London|  Oxford      |
  ---- ------- ------- --------------  
 |  2 | Second| Berlin| Nievenheimer |      
  ---- ------- ------- --------------  
 
  

Здесь есть способ написать запрос MySQL, который будет генерировать вывод JSON с вложенными элементами. Похоже на это:

 {
  1: {
    "title": "First",
    "address": {
      "city": "London",
      "street": "Oxford"
    }
  },
  2: {
    "title": "Second",
    "address": {
      "city": "Berlin",
      "street": "Nievenheimer"
    }
  }
}
  

Комментарии:

1. Почему бы не опубликовать ТЕКСТ, когда изображение содержит только текст?

2. @Luuk я пытался, но после вставки он был дезорганизован.

3. я не вижу никаких неорганизованных вещей …. (см. Редактирование)

Ответ №1:

Вы можете использовать функции генерации json:

 select json_object_agg(
    id,
    json_object(
        'title',   title,
        'address', json_object('city', city, 'street', street)
    )
) res
from mytable