0

我的 Discord 机器人上有一个排名系统,我试图显示一条消息,例如('You are rank #5')所以我需要查询我的数据库,但我对 SQL 不是很好(我使用 better-sqlite3 ) 我所尝试的显然是错误的。有人能帮助我吗?我的尝试:

    const userRank = db.prepare('SELECT count(*) FROM scores WHERE points <= 113 AND guild = ? ORDER BY points DESC').all(message.guild.id);
    console.log(userRank);

在这种情况下,我希望 console.log 输出“5”,但当前输出显示“1”(检查照片以获取数据库记录)

数据库

4

2 回答 2

1

如果你想让它说 5,你应该从 WHERE 子句中删除 guild 并翻转比较运算符。

SELECT count(*) FROM scores WHERE points >= 113 ORDER BY points DESC
于 2020-03-11T19:22:23.027 回答
0

我只是个白痴,我的代码几乎是正确的,更改<=>=并且工作正常,但是,在查看我的数据库时,我没有被公会过滤。所以它给出了正确的答案,我只是在看错误的表格。回答:

    const userRank = db.prepare('SELECT count(*) FROM scores WHERE points >= 64 AND guild = ? ORDER BY points DESC').all(message.guild.id);
于 2020-03-11T19:45:11.843 回答