Как получить доступ к полю внутри Списка или Массива объекта JSON с помощью SQL-запроса - PullRequest
0 голосов
/ 06 февраля 2019

Рассмотрим следующую таблицу

+-------------+--------------------------------------------------------------------------+
|company_name |                         products                                         |   
+-------------+--------------------------------------------------------------------------+
|   comp1     | [{"name": "prod1","pending": false}, {"name": "prod2","pending": true}]  |
+-------------+--------------------------------------------------------------------------+

Предположим, я хочу получить результаты на основе значения поля "name" внутри столбца "products", например: if "pending" = "true",затем отобразите company_name, а также имя продукта конкретного объекта JSON внутри List или Array.

Результат должен выглядеть примерно так:

+-------------+-------------------------------+
|company_name |           product_name        |
+-------------+-------------------------------+
| comp1       |            prod2              | 
+-------------+-------------------------------+

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

используйте индекс для получения значения $ [index]

Код будет выглядеть следующим образом:

Select company_name,json_extract(products,'$[1].name') product_name from table where json_extract(products,'$[1].pending')='false' ;

Примечание: создайте фиктивную таблицу с числами и объедините ее для индекса

0 голосов
/ 06 февраля 2019

Вы должны использовать программу на python, perl и т. Д., Которая извлекает json и конвертирует его в массив, и вы печатаете столбец массива, который вам нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...