Вставить данные в столбец - PullRequest
2 голосов
/ 13 мая 2011

Хорошо, у меня есть столбец с именем id, в котором есть 2000 "идентификаторов", и у меня есть недавно добавленное поле с именем "name".

Мне было интересно, как мне будет добавить списокимена, чтобы они совпадали с соответствующим идентификатором?

id ||имя

1 || bob
2 || smith
3 || john
4 || louis
5 || kevin
6 || jacob
7 || tim

Приношу свои извинения за то, что не смог прояснить вопрос.Идентификатор и имя находятся в одной таблице "карты".Карты были добавлены в прошлом с другими битами данных, такими как описания, цвета и т. Д., Так что уже было создано довольно много идентификаторов.Меня просто попросили добавить поле имени в таблицу «карточки» и вставить данные из электронной таблицы в указанное поле имени.

Ответы [ 2 ]

4 голосов
/ 13 мая 2011

Если у вас есть данные в электронной таблице с двумя столбцами, идентификатором и именем, вы можете сделать следующее:

В 3-м столбце таблицы выполните

=CONCATENATE("UPDATE cards SET name = '",A1,"' WHERE id = ",A2,";")

затем перетащите эту формулу вниз на все строки. Затем вы можете просто запустить сгенерированные запросы. Для 2000 строк это не должно занять много времени.

2 голосов
/ 13 мая 2011

Вам нужны известные отношения между идентификатором и именем. Таким образом, ваш список имен должен содержать идентификаторы, прежде чем использовать его для обновления таблицы. Поскольку это должно быть так, создайте временную таблицу с идентификатором, именем и используйте ее для обновления основной таблицы. например,

CREATE TEMPORARY TABLE tmptable(id INT(10) UNSIGNED PRIMARY KEY, 
                                firstname VARCHAR(20));
LOAD DATA INFILE '/path/to/mynames.txt' INTO tmptable(id, firstname);
UPDATE mytable m JOIN tmptable t ON (m.id=t.id) SET m.firstname=t.firstname;

Проверьте LOAD DATA INFILE синтаксис здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...