O MySQL fornece um recurso maravilhoso que permite importar um arquivo CSV diretamente, em uma única consulta.
O comando SQL que você está procurando é
LOAD DATA INFILE
Página do manual aqui:http://dev.mysql.com /doc/refman/5.1/en/load-data.html
Exemplo rápido:
LOAD DATA INFILE 'fileName'
INTO TABLE tableName
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(
field1,
field2,
field3,
@variable1,
@variable2,
etc
)
set
(
field4 = concat(@variable1,@variable2)
);
Esse é um exemplo bastante básico, mas cobre a maior parte do que você deseja. A página de manual fornece detalhes completos de como fazer algumas coisas muito complexas com ele.
Espero que ajude.