七叶笔记 » golang编程 » sqlite的json查询支持

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字段

我们先插入一点数据

接下来,我们要查数据

怎么查呢,

 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

相关文章