sqlite3模块中的ROW_NUMBER函数

时间:2019-03-15 01:04:19

标签: javascript node.js sqlite discord

我正在使用node.js中的sqlite3模块来创建一个sqlite数据库并与之交互,并试图使用ROW_NUMBER函数,但是我似乎还无法使其正常工作,并且想知道是否可能函数甚至在sqlite中都存在,就像在SQL中一样。

    client.db.each('SELECT ROW_NUMBER() OVER (ORDER BY guildbank DESC LIMIT 10) rownum, guildname, guildbank FROM guilds', [], (err, row1) => {
    if(err) {
        console.error(err.message)
    }
    if(row1.guildname == message.guild.name) istopten = true
    embed.addField(`${row1.rownum}. ${row1.guildname}`, `has ${row1.guildbank} yen in their guild bank!`)
    if(istopten) {
        client.db.each('SELECT ROW_NUMBER() OVER (ORDER BY guildbank) rownum, guildname, guildbank FROM guilds', [], (err, row2) => {
            if(err) {
                console.error(err.message)
            }
            if(row2.guildname == message.guild.name) embed.setFooter(`Your guild is in `)
        })
    }
})

我遇到的错误是指row1没有guildname属性,我得出的结论是我的查询是错误的原因。任何帮助将不胜感激。

编辑:

SQLITE_ERROR: near "LIMIT": syntax error
C:\Users\Adam\Desktop\projects\yabe-reworked\Coding-Yabe-Sei\node_modules\sqlite3\lib\trace.js:27
                    throw err;
                    ^

TypeError: Cannot read property 'guildname' of undefined
    at client.db.each (C:\Users\Adam\Desktop\projects\yabe-reworked\Coding-Yabe-Sei\commands\economy\leaderboard.js:11:17)

是错误的相关部分

1 个答案:

答案 0 :(得分:0)

我愚蠢的错误,我应该更清楚地知道,不能将LIMIT 10放在ROW_NUMBER函数中,您必须将其放在查询的末尾。感谢您的想法:)