MySQL Update во время импорта вопроса CSV - PullRequest
2 голосов
/ 28 февраля 2010

Хорошо, у меня есть CSV-файл продуктов, и у всех продуктов есть идентификационный номер. Я собираюсь импортировать этот CSV в существующую (пустую) таблицу базы данных, в которой столбцы в базе данных имеют то же имя, что и столбцы первой строки в файле CSV.

В БД есть один дополнительный столбец с именем URI. Мне нужно построить это во время (или после того, как все в порядке) импорта файла CSV, на основе информации в файле CSV.

Например, я знаю, что URI начнется с

http://foo.com/prodinfo.asp?number=

Мне нужно добавить, чтобы в основном построить URI и вставить в это последнее поле, чтобы URI выглядел как-

"<a href="http://foo.com/prodinfo.asp?number=" rel="nofollow noreferrer">http://foo.com/prodinfo.asp?number=</a>" . $item_number . "&id=123456"

Первая строка и последняя строка будут одинаковыми на каждой итерации, только номер элемента будет изменяться в зависимости от этого столбца в БД.

Теперь вопрос. Я могу легко написать сценарий PHP, чтобы выполнить обновление для меня, однако, я не знаю достаточно о MySQL, чтобы знать, можно ли это сделать во время импорта CSV или есть какой-то простой синтаксис MySQL, который я могу запустить в SQLyog что-то, чтобы сделать это без необходимости писать / запускать скрипт каждый раз?

Хорошо, я думаю, это объясняет, спасибо!

1 Ответ

1 голос
/ 28 февраля 2010

Если ваша таблица называется table, столбец item_number называется number, а столбец URI называется URI, вы можете выполнить следующую инструкцию SQL сразу после завершения импорта CSV:

UPDATE table SET URI=CONCAT('http://foo.com/prodinfo.asp?number=',number,'&id=123456');
COMMIT;

Если вы не хотите делать это вручную после каждого импорта, MySQL может автоматически запускать оператор как часть триггера .

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