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

分类: 编程语言 标签: sqlite 发布于: 2020-12-26 19:26:31, 点击数: