本文介绍了如何在 sqlite 中使用json 查询, 目标是从保存的json array中,找到匹配的id。
这个使用场景,是为文章,增加标签,然后查询 所有包含某个标签的文章
先来看看数据表结构
-- auto-generated definition
create table json_test_table
(
id int,
content json
);
create unique index json_test_table_id_uindex
on json_test_table (id);
我们定义了这样一个表,content是存放的json字段
我们先插入一点数据
接下来,我们要查数据
怎么查呢,
select * from json_test_table, json_each(json_test_table.content) where json_each.value = 3;
结果是
[
{
“id”: 2,
“content”: “[4, 3, 9, 168, 17173]”,
“key”: 1,
“value”: 3,
“type”: “integer”,
“atom”: 3,
“parent”: null,
“fullkey”: “$[1]”,
“path”: “$”
}
]
上面的数据是我格式化为json之后的。可以看到,找到了一条记录,
刚好是我们加到数据库中的数据,content里面的json array,id为2的文章,包含了值为3的记录
Golang 如果需要用sqlite 的 json特性,需要编译的时候,加上 go build –tags json1