При условии, что установлено расширение 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
. Этот подход будет работать с данными, структурированными, как показано, мне неизвестно, как будут структурированы производственные данные.