【问题标题】:Get record position in SQL在 SQL 中获取记录位置
【发布时间】:2020-06-23 20:01:24
【问题描述】:

我的 Discord 机器人上有一个排名系统,我试图显示一条消息,例如('你排名 #5')所以我需要查询我的数据库,但我对 SQL 不是很好(我使用更好的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”(检查照片以获取数据库记录)

【问题讨论】:

  • 使用&gt;= 查看还有多少记录具有更多点或匹配点是否更有意义?如果您不关心关系,那么&gt; 应该可以。看来你已经走在正确的轨道上了。
  • 是的,我犯了那个错误,看看我的回答,看看我有多愚蠢。

标签: sql node.js discord.js better-sqlite3


【解决方案1】:

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

SELECT count(*) FROM scores WHERE points >= 113 ORDER BY points DESC

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 2018-04-15
      相关资源
      最近更新 更多