2016-04-01 5 views
0

Heey all,Подключить отдельные идентификаторы к нескольким именам с одинаковыми идентификаторами

У меня возникают трудности с большим набором данных. У меня есть один лист либрейфеза (лист excel) размером около 13 тыс. Записей. 2 Колонки: Исполнитель - Песня

Я хочу это в базу данных MySQL, так что я создал 2 таблицу: Artists, Songs С внешним ключом в Songs к Artists так бесценку запись должна иметь действительный artist_id. Я добавил, что все художники правильно были вокруг 5k разных художников. Эта таблица работает для того, что я хочу сделать с ней, так что это не проблема.

Проблема заключается в том, как связать идентификатор художников с песней, которая находится во второй колонке моего листа. Я хочу, чтобы я смог создать 12k вставки запросов и вставить их прямо в phpmyadmin.

Любые советы, регулярные выражения, другие решения?

РЕДАКТИРОВАТЬ

My 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 отличается по длине песен. В этом проблема

ответ

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 в A1 (при условии, что ваши Artist (distinct) | Artist_Id столбцов C:D в этом же листе.

Тогда просто скопировать, что вниз к строке 12000 и вы установите.

в случае, если ваш 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, "'", "") & "');" 
+0

Это не возможно слишком плохо. Я скопировал список художников в столбце A, у которого были одинаковые значения, как для каждой Песни (которая находится в столбце B), художник снова указан. Итак, я извлек дубликаты и создаю новую строку с различными значениями Художников, оставляя меня с 5k строк артистов, все еще 12k строк песен. Как бы связать их? – Baklap4

+0

Я смущен. У вас есть рабочий лист с 'Artist | Song'. Разве что этот «Художник» в этом примере не является «Идентификатором артиста», а скорее именем «Artist Name», но для «INSERT» вам нужен «ID»?Если это так, то извлеките таблицу 'Artist' в новую вкладку из MySQL, а затем выполните vlookup, так что у вас есть' Artist_ID | Song' в двух столбцах рядом друг с другом, затем сгенерируйте инструкцию 'INSERT', как указано выше. В какой-то момент вам нужно будет иметь 'Artist_ID' и' Song' в той же строке в вашей таблице, чтобы вы могли их вставить. – JNevill

+0

Я отредактировал мой вопрос :) – Baklap4