将不同的ID连接到具有相同ID的多个名称

Heey all,

我遇到了大量的数据困难。 我有一个libreoffice计算表(excel表)与13K左右的logging。 2专栏:艺术家 – 歌曲

我想要这些到MySQL数据库,所以我创build了2个表: ArtistsSongsArtists Songs的外键,所以歌曲logging需要有一个有效的artist_id 。 我插入了所有的艺术家正确的约5K不同的艺术家。 这个表适用于我想要做的事情,所以这没有问题。

问题是我如何将艺术家的ID连接到我的工作表的第二列的歌曲。 我想这个,所以我能够创build12k插入查询,并将其粘贴到phpmyadmin。

任何提示,正则expression式,其他解决scheme?

编辑

我的Excel表格:

 Artists Songs Artist (distinct) Artist_id Abba mamma mia abba 1 Abba waterloo greenday 2 Greenday american idiot 

我的输出需要是:

 INSERT INTO Songs Values (1, "mamma mia"); INSERT INTO Songs Values (1, "waterloo"); INSERT INTO Songs Values (2, "american idiot"); 

艺术家(不同)和artist_id的名单在歌曲的长度上有所不同。 那就是问题所在

所以你的songs表有字段artist_id | song artist_id | song 。 你可以使用一个公式来使你的INSERT语句(假设你的数据从第一行开始):

 ="INSERT INTO songs (artist_id, song) VALUES (" & Vlookup(A1, C:D, 2, false) & ",'" & B1 & "');" 

我们使用artist_id vlookup()公式来获取A1 artistartist_id (假设您的Artist (distinct) | Artist_Id列是C:D

然后将其复制到12000行,然后设置。

如果你在excel中的song中有一个单引号,你可以将它们转义出来,或者把它们全部replace掉​​。

逃逸:

 ="INSERT INTO songs (artist_id, song) VALUES (" & Vlookup(A1, C:D, 2, false) & ",'" & SUBSTITUTE(B1, "'", "\'") & "');" 

去掉:

 ="INSERT INTO songs (artist_id, song) VALUES (" & Vlookup(A1, C:D, 2, false) & ",'" & SUBSTITUTE(B1, "'", "") & "');"