вызвать данные массива JSON в БД, используя запрос - PullRequest
0 голосов
/ 14 марта 2019

У меня есть БД, значения которой следующие: img Могу ли я вызвать значение json для перечисления (23,27 .... и т. Д.) В столбце свойств (при этом значение строки равно "листинг"), используя один запрос, я бы Очень ценю помощь.

1 Ответ

1 голос
/ 14 марта 2019

При условии, что установлено расширение JSON , да, вы можете использовать json_each. Это функция table_valued_function, поэтому она обрабатывается как таблица.

Вы можете выполнить SELECT * from ahoy_events,json_each(properties) в браузере sqlite, чтобы получить представление о данных.

Что-то вроде:

SELECT value as listing
from ahoy_events,json_each(properties)
where key = 'listing_id'

должен перечислить id (значение)

[EDIT]

Если расширение JSON недоступно, вы можете попробовать использовать основные функции SQLite substr, instr и length.

Часть значения столбца свойств отображается между : и }. : находится в положении instr(properties,':').

substr(properties,instr(properties,':') + 1,length(properties)-instr(properties,':') - 1)

Из документа " Функция substr (X, Y, Z) возвращает подстроку входной строки X, которая начинается с символа Y и имеет длину Z символов. '

Y - instr(properties,':') + 1, т.е. символ после :. Z length(properties)-instr(properties,':') - 1)

Вы можете использовать substr в SELECT или WHERE.

Еще одна мысль: если столбец properties всегда имеет одно значение, как показывают данные, не может быть проще вставить «значение» только в столбец свойств в базе данных? Или добавьте новый столбец listing_id. Этот подход будет работать с данными, структурированными, как показано, мне неизвестно, как будут структурированы производственные данные.

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