javascript - node.js 和 mysql 如果数据库中有 1,我如何获得 2?

标签 javascript mysql node.js

我想将 + 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/

相关文章:

javascript - Twitter Bootstrap 不支持 less.js

javascript - Node.js 无法发送脚本?

mysql - 查找客户的所有记录,其中所有记录在价格字段中都有 NULL 值

javascript - DiscordJS Canvas 附件未完全发送?

mysql - 如何使用插入查询将字典中的批量数据发送到数据库中?

javascript - 为什么 ownKeys 代理陷阱不能与 Object.keys() 一起使用?

javascript - knockout 验证异步验证器 : Is this a bug or am I doing something wrong?

mysql - 计算 mySQL 列中某些数据的实例数

mysql - 如何根据 UUID 检索列

android - bundle 失败 : Error: Plugin 0 provided an invalid property of "default"