我刚刚发现了 SQLite 的 JSON1,并发现它可以完美地解决我需要在我的 Android 应用程序中处理的许多问题(我正在使用 SQLCipher,它提供了支持 JSON1 的 SQLite 版本)。JSON1的SQLite 文档非常好,但没有涵盖诸如运行子查询之类的问题——无论如何,这在某种程度上超出了我的 SQL 能力。
这是我的测试用例
我首先创建表格
CREATE TABLE users(name TEXT,phone TEXT)
然后我添加两行
INSERT INTO users (name,phone) VALUES('Joe Bloggs','{"mobile":
"123456789","land":"987654321"}');
INSERT INTO users (name,phone) VALUES('Jane Bloggs','{"mobile":
"234567890","land":"098765432"}');
然后我可以查询以返回例如手机号码
SELECT json_extract(users.phone, '$.mobile') FROM users;
这将返回结果 ["123456789","234567890"]
但是假设我想获取手机号码为 234567890 的用户的固定电话号码和姓名。我将如何使用可用的json_*
原始函数编写子查询以便简单地返回结果 ["Jane Bloggs","234567890" ]?