#javascript #mysql #node.js #json #node-mysql
#javascript #mysql #node.js #json #узел-mysql
Вопрос:
Мне нужно вставить несколько значений json в столбец mysql. Здесь у меня есть таблица с именем 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
строк в user_id
столбец в таблице sql. Могу ли я узнать, как вставить несколько user_id
строк в эту таблицу.
Ответ №1:
Вы можете создать 2-мерный массив для вставки нескольких строк.
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. Отображаемая карта map не определена и не может прочитать свойство. Могу ли я узнать, для чего здесь используется map
2. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
3. Это означает, что нет
clientData.additionalClient
такого свойства, как вы показали.4. Прочитайте это внимательно. В нем не говорится, что map не определено, в нем говорится, что
clientData.additionalClient
это не определено, поскольку это то, к свойству чего мы пытаемся получить доступmap
.5.
additional_client
!=additionalClient