-1
votes

Convertir une gamme d'objets en insertion de requête SQL dans

J'essaie de convertir un tableau d'objets pour l'utiliser pour effectuer une requête insérer dans code>

Ceci est la matrice: p>

query("INSERT INTO table (topic_id, provider, post_id) VALUES " + sql)


1 commentaires

Votre résultat de la chaîne prévu ne doit pas contenir les noms de propriétés, juste leurs valeurs dans le bon ordre


3 Réponses :


0
votes

Voulez-vous dire quelque chose comme ça?

p>

var arr = [
  { topicId: 4, provider: 'ex', postId: 'tT-t1IfwuyI' },
  { topicId: 4, provider: 'ex2', postId: '1382658099542084903' },
  { topicId: 4, provider: 'ex3', postId: 'BdePFBBBUdI' },
  { topicId: 4, provider: 'ex', postId: '-7UZr-wpL_Y' }
];

var sql = arr.map(item => ("(" + item.topicId + ", " + item.provider + ", " + item.postId + ")"))

console.log(sql)


0 commentaires

1
votes

Vous êtes proche, en utilisant `` ` code> avec $ {} code> Pour mettre les valeurs, vous pouvez créer la chaîne souhaitée pour chaque élément de la matrice.

const array = [{
    topicId: 4,
    provider: 'ex',
    postId: 'tT-t1IfwuyI'
  },
  {
    topicId: 4,
    provider: 'ex2',
    postId: '1382658099542084903'
  },
  {
    topicId: 4,
    provider: 'ex3',
    postId: 'BdePFBBBUdI'
  },
  {
    topicId: 4,
    provider: 'ex',
    postId: '-7UZr-wpL_Y'
  }
]

let sql = array.map(item => `(${item.topicId}, ${item.provider}, ${item.postId})`)
//array with items.
console.log(sql);


const finalQuery = "INSERT INTO table (topic_id, provider, post_id) VALUES " + sql
console.log(finalQuery)
console.log("query("+finalQuery+")")


2 commentaires

C'est la chaîne, il s'agit d'une chaîne de requête SQL valide.


Oui vous avez raison, le résultat de la chaîne attendue de la question n'est pas valide SQL



2
votes

J'ai eu un problème, quand je voulais envoyer la requête, MySQL n'a pas reconnu mes cordes parce qu'elles n'avaient pas d'apostrophe, j'ai donc résolu ce moyen simple, basé sur la réponse de Prince Hernandez.

const array = [
  {
idservicio: 1,
precio: 20.5,
comentario: 'hello',
descuento: 0,
total: 20.5,
estado: 1
 },
{
idservicio: 2,
precio: 20.5,
comentario: 'World',
descuento: 0,
total: 20.5,
estado: 1
},
{
idservicio: 3,
precio: 20.5,
comentario: '..........',
descuento: 0,
total: 20.5,
estado: 1
}
]
//In the string comentario item, manually add the apostrophes.

let sql = array.map(item => `(${item.idservicio}, ${item.precio}, ${"'"}${item.comentario}${"'"}, ${item.descuento}, ${item.total}, ${item.estado})`)

//array with items.
console.log(sql);


const finalQuery = "INSERT INTO pos.detalle_orden (idservicio, precio, comentario, descuento,total,estado) VALUES " + sql
console.log(finalQuery)
console.log("query("+finalQuery+")")


0 commentaires