2017-07-06 134 views
0

我需要做一個多行刪除查詢與列表中的where子句(id1,id2 ..) 但是因爲我們沒有在JS列表我'有一個問題米,這些參數傳遞給query.This是我的代碼:如何通過id列表刪除查詢從NodeJs

let list =[1,2,..]; 
let Query = 'DELETE FROM Table WHERE id IN (?)'; 
connection.query(Query,list, function (err, result) { 
    `enter code here` 
}; 
當我通過這種方式

和MySQL服務器記錄到日誌文件我看到,它實際上僅通過第一ID後。

PS:我試過沒有括號的?並在列表中做一個Array.join,但兩者都不起作用。

回答

0

只需追加項目的查詢字符串列表:

let list = [1, 2, 3]; 
let Query = `DELETE FROM Table WHERE id IN (${list})`; 
connection.query(Query, function (err, result) { 
    `enter code here` 
}; 
+0

感謝,它的工作原理 –

0

讀入的https://github.com/mysqljs/mysql#performing-queries文件(如果你使用這個LIB連接MySQL)

let list =[1,2,..]; 
let Query = 'DELETE FROM Table WHERE id IN (?)'; 
// values param need is a array of value to binding to "?" 
// you can try [list.toString()] if the block above not working 
connection.query(Query,[list], function (err, result) { 
    `enter code here` 
};