SQLite 中的向量/列表

saz*_*azr 7 sql sqlite

我是 SQL 新手,是否有列表或向量变量类型?我可以有一个类型是字符串列表的列吗?

也许是这样的:

CREATE TABLE myTbl(domain varchar PRIMARY KEY, linkList list<varchar>);
Run Code Online (Sandbox Code Playgroud)

我可以附加这样的字符串吗(通过使用“+=”运算符):

UPDATE myTbl SET linkList += "www.test.com," WHERE domain="blah";
// Table is like so
CREATE TABLE myTbl(domain varchar PRIMARY KEY, linkList varchar);
// Column linkList is a string of links separated by comma's
Run Code Online (Sandbox Code Playgroud)

Wil*_*ley 7

您可以使用 json1 扩展名将列表存储在 SQLite 字段中: https: //www.sqlite.org/json1.html

所以你的架构看起来像:

CREATE TABLE myTbl(
    domain varchar PRIMARY KEY,
    linkList JSON DEFAULT('[]'));
Run Code Online (Sandbox Code Playgroud)

并附加一个项目:

UPDATE myTbl
SET linkList = json_insert(linkList, '$[#]', "www.test.com")
WHERE domain="blah";
Run Code Online (Sandbox Code Playgroud)

SQLite JSON 支持非常灵活,特别是对于较新版本的 SQLite。您可以根据 JSON 的内容在 JSON 表达式上设置索引以进行快速匹配。您可以将其与生成的列一起使用以进行动态数据提取。您可以SELECT从 JSON 列表中使用json_each()表值函数

尝试将其复制粘贴到sqlite3命令行或https://sqliteonline.com/中:

CREATE TABLE myTbl(
    domain varchar PRIMARY KEY,
    linkList JSON DEFAULT('[]'));
Run Code Online (Sandbox Code Playgroud)

注意:此示例需要 SQLite 3.31 来表示$[#]