数据库中数组的数量

问题描述 投票:1回答:1

我有一个数据库,我将举一个例子。

guildid    botid
1234       ["2345","3456","3714","1812"]
9876       ["8765","5432"]
4346       NULL
2371       ["3179"]
1254       NULL
1257       ["1721","7104","8265"]
8321       NULL

我需要输出其中的抗体数量,在此示例中答案为10。数据库中有7条记录,但10个总ID不为NULL通常我会这样做SELECT count(*) FROM watchedbots但是,这仅计算有多少记录。在某些情况下,botid也可以是NULL,因此我需要它忽略NULL条目。在数组方面,我还是一个新手,因此将不胜感激。我用于SQL的模块是better-sqlite3

编辑:扩展示例

如果执行以下操作:

const dataGrab = db.prepare('SELECT botid FROM watchedbots').all()
const stringify = JSON.stringify(dataGrab)
console.log(stringify)

我得到的输出是:[{"botid":null},{"botid":null},{"botid":null},{"botid":"["1721","7104","8265"]"},{"botid":"["2345","3456","3714","1812"]"},{"botid":"["3179"]"},{"botid":"["8765","5432"]"}]我想这是下一步的不错选择,但不确定该从哪里去。

javascript sql discord.js better-sqlite3
1个回答
0
投票

我认为您最简单的方法是遍历基本数组。

let count = 0;
for(guild of dataGrab) {
    if(guild.botid) {
        count += guild.botid.length;
    }
}
console.log(count);
© www.soinside.com 2019 - 2024. All rights reserved.