sqlite的json查询支持

 
本文介绍了如何在 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字段
 
我们先插入一点数据
 
INSERT INTO json_test_table (id, content) VALUES (2, '[7, 6, 13]')
 
 
 
接下来,我们要查数据
 
怎么查呢,
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
 

分类: gosense 标签: Go SQLite JSON SQL 发布于: 2020-11-03 06:08:15, 点击数: