将不同的ID连接到具有相同ID的多个名称
Heey all,
我遇到了大量的数据困难。 我有一个libreoffice计算表(excel表)与13K左右的logging。 2专栏:艺术家 – 歌曲
我想要这些到MySQL数据库,所以我创build了2个表: Artists
, Songs
与Artists
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
artist
的artist_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, "'", "") & "');"