【问题标题】:Does node mysql allows updating multiple rows through one querynode mysql是否允许通过一个查询更新多行
【发布时间】:2017-02-28 05:12:41
【问题描述】:

我将mysql 与节点一起使用,我必须更新多行,我想用一个查询来完成。我能够插入多行但我无法更新多行,下面是代码 sn-p

var update_tasks="UPDATE tasks SET phy_1_id=? , phy_2_id=? where id=?";
                  db.query(update_tasks,[[-1,-1,10086],[-1,-1,10087]],function (er, results, fields){
                      if (er) {console.log("Error "+JSON.stringify(er));return res.status(500).send(er);}
                      else{
                        return res.status(200).json(results);
                      }
                  })

你能告诉我该怎么做吗?

【问题讨论】:

    标签: mysql node.js


    【解决方案1】:

    您在正确的轨道上,但不应该是这样。参数查询取决于列数据类型,例如字符串,在更新列之前将数组转换为字符串

    var pkId = 'unique12312'
    var update_tasks="UPDATE tasks SET phy_1_id=? , phy_2_id=? where id=?";
       db.query(update_tasks,[[-1,-1,10086].toString(),[-1,-1,10087].toString(), pkId],function (er, results, rows, fields){
          if (er) {
             console.log("Error "+JSON.stringify(er));
             return res.status(500).send(er);
          } else{
             return res.status(200).json(results);
          }
     });
    

    【讨论】:

    • 为了更新我通过 [-1,-1,10086] 的单行,它可以工作,更新语句中所有列的数据类型也是 bigint
    • 我认为您的问题中的查询不起作用。它很大 int 不是数组,你给的参数是一个数组。此外,您没有在查询语句中指定 whereclause id。
    猜你喜欢
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    相关资源
    最近更新 更多