Heey all,
我在处理大量数据时遇到了困难。 我有一个libreoffice计算表(excel表),大约有13k记录。 2栏:艺术家 - 歌曲
我希望这些成为一个mysql数据库,所以我创建了两个表:Artists
,Songs
使用Songs
到Artists
中的外键,因此歌曲记录需要有效artist_id
。
我已经正确地插入了所有艺术家,大约是5k不同的艺术家。
这个表适用于我想用它做什么,所以没问题。
问题是我如何将艺术家的ID连接到我工作表第2栏中的歌曲。 我想要这个,所以我能够创建12k插入查询并将它们粘贴到phpmyadmin。
任何提示,正则表达式,其他解决方案?
修改
我的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的歌曲长度不同。这就是问题
答案 0 :(得分:1)
因此,您的songs
表格包含字段artist_id | song
。您可以使用公式来生成INSERT
语句(假设您的数据在第1行开始):
="INSERT INTO songs (artist_id, song) VALUES (" & Vlookup(A1, C:D, 2, false) & ",'" & B1 & "');"
我们使用vlookup()
公式来抓取artist_id
中artist
的{{1}}(假设您的A1
列为Artist (distinct) | Artist_Id
同一张纸。
然后将其复制到第12000行并进行设置。
如果excel中的C:D
中包含单引号,您可以将其排除,或者将其替换为空。
逃生:
song
卸下:
="INSERT INTO songs (artist_id, song) VALUES (" & Vlookup(A1, C:D, 2, false) & ",'" & SUBSTITUTE(B1, "'", "\'") & "');"