Mysql Импорт новых кодов из Excel - PullRequest
1 голос
/ 13 ноября 2009

У меня есть CSV-файл с отображениями из идентификаторов проекта в некоторые новые коды категории.

, например

Project Id, New Code 
1, 035 
2, 029 
3, 023 
4, 035 
5, 029 
.... 

Выше приведено в файле CSV / файле Excel

У меня есть таблица проектов с этими идентификаторами проектов, и я хочу добавить новый столбец с новым кодом.

Можно ли как-нибудь это сделать с помощью mysql?

Ответы [ 2 ]

1 голос
/ 13 ноября 2009

Первая проблема - перенести ваш CSV в базу данных. Есть некоторые решения для MySQL, см. Например http://dev.mysql.com/doc/refman/5.1/en/mysqlimport.html

Существуют также сторонние инструменты, которые делают такие вещи.

Если у вас есть CSV-данные в новой таблице в вашей базе данных, и вы создали новый столбец в таблице проектов, просто сделайте следующее:

UPDATE projects p 
SET new_code = 
   (select distinct new_code from temp_table where project_id = p.project_id)
1 голос
/ 13 ноября 2009

Вот быстрое и грязное решение, использующее функцию CONCATENATE в Excel:

Предполагая, что у вас есть ID проекта в столбце A и новый код в столбце B, введите следующее для столбца C:

=CONCATENATE("update projects set new_code = ",B1, " where project_id = ", A1, ";")

Затем скопируйте и вставьте это для всех строк в вашей таблице Excel. Это генерирует операторы SQL, которые вы затем можете использовать для массового обновления таблицы. Скопируйте текст в скрипт и позвольте mysql выполнить его.

В итоге вы получите скрипт, который выглядит примерно так:

update projects set new_code = 35 where project_id = 1;
update projects set new_code = 39 where project_id = 2;
update projects set new_code = 23 where project_id = 3;

Это, конечно, предполагает, что у вас уже есть новый столбец в вашей таблице. Если нет, используйте оператор alter table, чтобы добавить его:

alter table projects add column new_code int; 

Примечание: я не рекомендую этот метод, если вы хотите сделать это несколько раз - но если это всего лишь разовая вещь, то такое быстрое решение отлично работает.

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