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

Connect distinct id's to multiple names having same id

大家好,

我在处理大量数据时遇到困难。 我有一个 libreoffice calc sheet (excel sheet) 大约有 13k 条记录。 2 列:艺术家 - 歌曲

我想将它们放入 mysql 数据库中,所以我创建了 2 tables:ArtistsSongsSongsArtists 中有一个外键,所以歌曲记录需要有一个有效的 artist_id。 我已经正确地插入了大约 5k 位不同艺术家的所有艺术家。 这个 table 适用于我想用它做的事情,所以没问题。

问题是我如何将艺术家的 ID 连接到 sheet 第二列中的歌曲。 我想要这个,所以我能够创建 12k 插入查询并将它们直接粘贴到 phpmyadmin 中。

任何提示、正则表达式或其他解决方案?

编辑

我的excelsheet:

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 table 有字段 artist_id | song。您可以只使用公式来制作 INSERT 语句(假设您的数据从第 1 行开始):

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

我们使用 vlookup() 公式为 A1 中的 artist 获取 artist_id(假设您的 Artist (distinct) | Artist_Id 列是 C:D 在同一个 sheet.

然后只需将其复制到第 12000 行即可。

如果 excel 中的 song 中有单引号,您可以将其转义,或将其替换为空。

转义:

="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, "'", "") & "');"