答案 0 :(得分:1)
如果已安装JSON extension,可以使用json_each
。这是一个table_valued_function,因此它被视为表。
您可能想在sqlite浏览器中执行SELECT * from ahoy_events,json_each(properties)
来了解数据。
类似的东西:
SELECT value as listing
from ahoy_events,json_each(properties)
where key = 'listing_id'
应列出ID(值)
[编辑]
如果JSON扩展名不可用,则可以尝试使用SQLite core functions 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)
您可以在SELECT或WHERE中使用substr
。
另一种想法:如果properties
列始终是单值的(如数据似乎显示的那样),仅将“值”插入数据库的属性列中难道不是很容易吗?或添加新的listing_id
列。该方法适用于如图所示的结构化数据,但我不知道生产数据的结构方式。