2017-02-02 7 views
2

私は、すなわち「名前」と「ハッシュ」としてデータベーステーブルの2列を持つノードJSコードインサート複数の行は、

names = ['Name1','Name2','Name3','Name4', ...500 more items] 
hashes = ['hash1','hash2','hash3','hash4', ...500 more items] 

2つの配列を有します。私は1つのmysql文だけを使って、複数の行に名前とハッシュ値を同時に挿入したい。

私は1つの配列でそれをしようとしました。正常に実行されましたが、2つの配列では動作しませんでした。私はそれをどうすればいいのですか?
私は1つのアレイのために書いたMySQLのINSERTクエリを以下に示します。

var sql = "Insert IGNORE into lu (Name) VALUES ?"; 
con.query(sql,[array1],function(err, result){ 
    if (err){ 
     con.rollback(function(){ 
      throw err; 
     }); 
    } 
}); 
+0

構造体を投稿することができます – Assen

+0

"array1"構造体は "names"配列とまったく同じです – vivekm91

+0

'' [名前 "と"ハッシュ " ]、...] '? – Saka7

答えて

1

あなただけの1つの配列にnameshashesをマッピングすることができます - そして、要素のネストされた配列を挿入し、[["Name1", "hash1"], ...]

var sql = "INSERT IGNORE INTO lu(Name, hash) VALUES ?"; 

var names = ['Name1','Name2','Name3','Name4']; 
var hashes = ['hash1','hash2','hash3','hash4']; 

var toOneArray = function(names, hashes) { 
    return names.map(function(name, i) { 
    return [name, hashes[i]] 
    }); 
} 

con.query(sql, [toOneArray(names, hashes)], function(err, result) { 
    if (err) { 
    con.rollback(function(){ 
     throw err; 
    }); 
    } 
}); 

別の方法があるかどうかわかりません。

関連する問題