【问题标题】:How to insert multiple rows from JSON structure to MySQL column如何将多行从 JSON 结构插入 MySQL 列
【发布时间】:2021-02-13 13:53:24
【问题描述】:

我需要在一个 mysql 列中插入多个 json 值。 这里我有一个名为 client 的表

query = ' INSERT INTO client (user_id,client_id,tenant_id) values ?'
let queryClient = []
queryClient.push(clientData.user_id)
queryClient.push(clientData.client_id);
queryClient.push(clientData.tenant_id);

在此之前,我将req.body 分配给clientData

这里是mysql数据库的连接

var queryMapClientIn = mysql.format(query, [queryClient])
const newMapClient = await conPool.query(queryMapClientIn, function (err, result) {
  if (err) throw err;
  console.log("Number of records inserted: " + result.affectedRows);
});

这是代码,json数据是:

{
    "user_id" : 101,
    "client_id": 999,
    "tenant_id" : 1,
    "additionalClient" : [
        {"user_id" : 130},
        {"user_id" : 131}
    ]
}

这是 json 数据,我需要将多个 user_id 推送到 sql 表上的 user_id 列中。可以知道如何在这张表上插入多个user_id吗?

【问题讨论】:

    标签: javascript mysql node.js json node-mysql


    【解决方案1】:

    您可以创建一个二维数组来插入多行。

    let clientData = {
        "user_id" : 101,
        "client_id": 999,
        "tenant_id" : 1,
        "additionalClient" : [
            {"user_id" : 130},
            {"user_id" : 131}
        ]
    };
    let queryClient = [[clientData.user_id, clientData.client_id, clientData.tenant_id]];
    if (clientData.additionalClient) {
        let additionalClients = clientData.additionalClient.map(({user_id}) => [user_id, clientData.client_id, clientData.tenant_id]);
        queryClient = queryClient.concat(additionalClients);
    }
    
    let query = 'INSERT INTO client (user_id,client_id,tenant_id) values ?';
    const newMapClient = await conPool.query(query, queryClient, function (err, result) {
      if (err) throw err;
      console.log("Number of records inserted: " + result.affectedRows);
    });
    

    【讨论】:

    • 它的显示地图是未定义的地图,它无法读取属性。能知道这里的map有什么用吗
    • 这意味着没有你展示的clientData.additionalClient属性。
    • 仔细阅读。它并不是说 map 是未定义的,而是说 clientData.additionalClient 是未定义的,因为这就是我们试图访问的 map 属性。
    • additional_client != additionalClient
    猜你喜欢
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    相关资源
    最近更新 更多