SQLite 提取 JSON Massive 并加入他
Posted
技术标签:
【中文标题】SQLite 提取 JSON Massive 并加入他【英文标题】:SQLite Extract JSON Massive and JOIN with him 【发布时间】:2021-08-11 14:51:39 【问题描述】:我有 SQLite 表 Movies 和列 Writers,其中 json 行数很大。
示例 1 行。
["id": "0b60f2f3fd2e12babe918a164dbd8230dd5e3140", "id": "0b60f2f35d7a8e16853803c0e338f0d115d7182e", "id": "0b60f2f3cabb51e1b8cec9bb2cc177d1e3f7f738"]
-
如何在 SQLite 中提取此 ID?
如何在 SQLite 中使用带有此 ID 的 JOIN?因为我有表 Writer 机智 ID
谢谢
【问题讨论】:
【参考方案1】:您可以使用函数json_extract()
结合函数json_each()
来提取id:
SELECT m.id, m.title,
json_extract(json_each.value, '$.id') writer
FROM Movies m, json_each(Writers)
并使用它们来加入表格Writers
:
SELECT m.id, m.title,
json_extract(json_each.value, '$.id') writer,
w.name
FROM Movies m, json_each(Writers)
INNER JOIN Writers w ON w.id = json_extract(json_each.value, '$.id')
我假设表 Movies
具有列 id
、title
和 Writers
,表 Writer
具有列 id
和 name
。
查看简化的demo。
【讨论】:
谢谢!但对我不起作用。我的模式电影:创建表电影(id文本主键,流派文本,导演文本,作者文本,标题文本,情节文本,评级文本,imdb_rating float,作者文本);是的,这不是我的基础,我必须编辑这个)谢谢家伙 [2021-05-22 22:49:44] [1] [SQLITE_ERROR] SQL 错误或缺少数据库(格式错误的 JSON) @ElonPy 正如您在我的演示链接中看到的那样,我的代码运行良好。您的数据中似乎存在格式错误的 JSON 值。 是的,你是对的。非常感谢您。这是工作!对我来说很棒的代码和知识以上是关于SQLite 提取 JSON Massive 并加入他的主要内容,如果未能解决你的问题,请参考以下文章
在 sqlite 中使用 json_extract 从父对象和子对象中提取数据
Java 怎么取出一个字符串中的数字 并加上一个数 再把原来字符串输出来~数字改为结果 ·