首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从JSON结构向MySQL列插入多行

如何从JSON结构向MySQL列插入多行
EN

Stack Overflow用户
提问于 2020-10-31 15:58:07
回答 1查看 66关注 0票数 0

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

代码语言:javascript
复制
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数据库的连接

代码语言:javascript
复制
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数据是:

代码语言:javascript
复制
{
    "user_id" : 101,
    "client_id": 999,
    "tenant_id" : 1,
    "additionalClient" : [
        {"user_id" : 130},
        {"user_id" : 131}
    ]
}

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-31 16:07:39

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

代码语言:javascript
复制
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);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64619607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档