2017-02-28 82 views
0

我使用mysql節點,我必須更新多個行,我想用一個查詢來完成。我是能夠插入多行,但我不能夠更新多行,下面是代碼片段節點mysql允許通過一個查詢更新多行

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); 
         } 
        }) 

你能告訴我,我應該如何去了解這一點。

回答

0

你在正確的軌道上,但它不應該是這樣的。參數查詢取決於列的數據類型,例如字符串,您的數組轉換爲字符串更新前的列

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); 
     } 
}); 
+0

爲了更新單行我通過[-1,-1,10086]和它的作品,也更新語句中所有列的數據類型是bigint –

+0

我不認爲您的問題中的查詢會起作用。它的大小不是數組,你給出的參數是一個數組。另外,你不在查詢語句中指定whereclause id。 – digit