node.js和mysql如果在数据库中有1,我怎么得到2?
我想在数据库中添加+ 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连接到字符串。
node.js和mysql如果在数据库中有1,我怎么得到2?
我想在数据库中添加+ 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连接到字符串。