形成多行插入的数组格式nodejs-mysql

Posted

技术标签:

【中文标题】形成多行插入的数组格式nodejs-mysql【英文标题】:Forming an array format for multi row insertion nodejs-mysql 【发布时间】:2017-10-20 02:20:33 【问题描述】:

我有一个如下所示的对象项

var item = "9":"9","22":"22","23":"23","24":"24";

和变量var cart = 23;var group = 40;

现在我想以一种格式形成这些项目,以便我可以执行如下所示的多行 mysql 插入

var sql = "INSERT INTO test (item, cart, group) VALUES ?";
var values = [
    [9, 23, 40],
    [22, 23, 40],
    [23, 23, 40],
    [24, 23, 40]
];

我需要形成上述数组格式才能在节点js中执行多行插入。以上格式如何制作?

【问题讨论】:

你需要key还是value? values 的项目对象。我想做那个values数组格式 【参考方案1】:

使用Array.prototype.map:

var values = Object.keys(item).map(k => [k, cart, group]);

【讨论】:

【参考方案2】:

您可以映射对象的值并返回一个带有数字的数组。

var item =  9: "9", 22: "22", 23: "23", 24:"24" ,
    cart = 23,
    group = 40,
    array = Object.keys(item).map(function (k) 
        return [+item[k], cart, group];
    );
    
console.log(array);

【讨论】:

以上是关于形成多行插入的数组格式nodejs-mysql的主要内容,如果未能解决你的问题,请参考以下文章

在多行上插入数组

从数组的一个查询中插入多行[重复]

mysql 一次插入多行不同的数据

MySQLi - 插入多行 - 空 POST 数组

POSTGRESQL 从给定的 JSON 数组中插入多行,使用插入的结果进行其他插入

PHP数组未向数据库插入多行