在Web应用程序中将多行插入mysql

时间:2018-06-08 23:52:33

标签: javascript mysql sequelize.js

允许用户选择歌曲列表并将其添加到播放列表中。歌曲和播放列表之间的关系有一个桥接表。

当用户将歌曲分配给播放列表时,应用程序接收歌曲ID和播放列表ID的列表。插入桥表的行数与歌曲数相同。

我可以为每首歌调用查询(这看起来效率低,但可用)或者我可以制定查询以一次插入所有数据。我的问题是关于制定查询。

我有一个歌曲ID列表

[1, 2, 3, 4, 5, 6, 7,]

和播放列表ID(只是一个int)。

我的续集查询如下所示:

sequelize.query(
        `INSERT INTO songsplaylistsbridge (song, playlist)
        VALUES ($1, $2);`, {
          bind: [songs, playlist]
        }
      )

我从Inserting multiple rows in mysql了解查询的外观,但我无法想出一个可生成可用对象的for循环。

我有一个看起来像

的列表
['(1, 43)', '(2, 43)', '(3, 43)', '(4, 43)']

...等。如何将这些值适当地插入到查询中?谢谢

1 个答案:

答案 0 :(得分:1)

不要使用bind,只需撰写查询文字:



var values = ['(1, 43)', '(2, 43)', '(3, 43)', '(4, 43)'];
var query = "INSERT INTO songsplaylistsbridge (song, playlist) VALUES " + values.join(", ");
console.log(query);