【发布时间】:2019-08-06 00:50:24
【问题描述】:
我正在使用 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)
是错误的相关部分
【问题讨论】:
-
表及其名称都设置正确,我知道这很重要
-
错误信息是什么(如果有),它是否抱怨
ROW_NUMBER不是一个有效的函数? -
@TimBiegeleisen 已编辑错误的相关部分,感谢您指出我应该这样做
-
这些看起来是 JavaScript 错误,但这并不意味着您的 SQL 是有效的。要测试有效的 SQL,请尝试直接针对 SQLite 运行。
标签: javascript node.js sqlite discord