允许用户选择歌曲列表并将其添加到播放列表中。歌曲和播放列表之间的关系有一个桥接表。
当用户将歌曲分配给播放列表时,应用程序接收歌曲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)']
...等。如何将这些值适当地插入到查询中?谢谢
答案 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);