我想将 + 1 添加到数据库中,如果在这种情况下我有 1 个,我将在数据库中有 2 个,我试过了但得到了 11 个,而不是 2 个
if (result4.length) {
var sql1 = `UPDATE level SET xp = '${result4[0].xp + 1}' WHERE xp = '${result4[0].xp}'`;
connection.query(sql1, function(err, result) {
if (err) throw err;
});
}
这里是完整的源代码,以防万一:
client.on("message", message => {
if (message.author.bot) return;
connection.query(`SELECT * FROM guildn WHERE id = '${message.guild.id}'`, function(err, result3) {
if (err) {
return console.log('Error1');
}
if (result3.length) {
connection.query(`SELECT * FROM level WHERE id = '${message.author.id}'`, function(err, result4) {
if (err) {
return console.log('Error1');
}
if (!result4.length) {
var sql = `INSERT INTO level (guild , id , nivel , xp) VALUES ('${message.guild.id}','${message.author.id}','0','1')`;
connection.query(sql, function(err, result) {
if (err) throw err;
console.log("1 record inserted");
return
});
}
if (result4.length) {
var sql1 = `UPDATE level SET xp = '${result4[0].xp + 1}' WHERE xp = '${result4[0].xp}'`;
connection.query(sql1, function(err, result) {
if (err) throw err;
});
}
});
}
});
});
我使用了谷歌翻译来制作这篇文章,所以如果我在翻译中有任何错误,我很抱歉
最佳答案
我怀疑数据库 xp
的结果是一个字符串。这似乎合乎逻辑,因为您在查询中将其设置为字符串。在那种情况下,你会这样做:
`UPDATE level SET xp = '${parseInt(result4[0].xp) + 1}' WHERE xp = '${result4[0].xp}'`;
这会将结果转换为数字,javascript 会将其加 1,而不是将 1 连接到字符串。
关于javascript - node.js 和 mysql 如果数据库中有 1,我如何获得 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48012036/