2017-06-18 10 views
3

テーブルから複数の行を削除できるクエリを作成する必要があります。これを行うために、私は配列内でそのクエリに渡す必要のある値を持つ配列を作成しました。ここに私のコードは次のとおりです。ノードJS配列の配列を持つ複数の行を削除するmysql

var deleteRooms = [ [ 3, 23 ], [ 4, 23 ], [ 5, 23 ], [ 2, 23 ]]; 

connection.query("DELETE FROM rate_plans_rooms WHERE room_id = ? AND rate_plan_id = ? ", 
[deleteRooms],function(err,results){ 
if(err){return console.log(err)} 

else 
{           
    console.log('sended'); 
} 

}); 

しかし、私はこのようなエラーを受け取るたびに:

{ Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check 
the manual that corresponds to your MariaDB server version for the 
right syntax to use near ' (4, 23), (5, 23), (2, 23) AND rate_plan_id 
= ?' at line 1 

私はそれを修正し、適切に私のクエリを送信することができますどのように?

答えて

3

あなたの問題の解決策は、クエリ内のIN「」を使用することです:

var deleteRooms = [[3,23],[4,23],[5,23], [2,23]]; 

connection.query("DELETE FROM rate_plans_rooms WHERE (room_id, rate_plan_id) IN (?)", 
    [deleteRooms],function(err,results){ 

    if(err) return console.log(err) 
    else console.log('sended'); 
}); 
+1

はあなたの助けのためにありがとうございました!あなたは私の命を救った! – andrzej541

関連する問題