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 具有列 idtitleWriters,表 Writer 具有列 idname

查看简化的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 怎么取出一个字符串中的数字 并加上一个数 再把原来字符串输出来~数字改为结果 ·

Massive可以和MySql合作吗?

从 API 获取 JSON,将其添加到 sqlite3 数据库并自动获取下一页

如何使用 Massive ORM 实现验证?