Конвертировать массив объектов в SQL-запрос вставки в - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь преобразовать массив объектов, чтобы использовать его для выполнения запроса INSERT INTO

Это массив:

 [{ 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' }]

Я пытаюсь сделатьmap в массиве, чтобы сделать это ... но он возвращает мне просто массив postIds:

let sql = array.map(item => (item.topicId.toString(), item.provider.toString(), item.postId.toString()))

ожидаемый результат - строка:

( 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' )

Я хочу преобразовать их ввставьте в этот запрос:

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

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 25 января 2019

вы близки, используя `` с ${} для установки значений, вы можете создать желаемую строку для каждого элемента в массиве.

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+")")
0 голосов
/ 25 января 2019

Вы имеете в виду что-то подобное?

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...