使用LOAD DATA LOCAL INFILE导入时向字段添加字符串

3

我正在使用以下查询将csv文件导入到mysql表中:

"LOAD DATA INFILE 'myfielname.csv'
INTO table customers
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\r'
IGNORE 3 LINES
(sales,regional,accounts)
";

有没有办法在导入字段前插入一串字符?
例如:上面的“销售”字段指的是账户ID号码,这些号码正在应用程序中使用。我想在导入期间在帐号号码之前附加一个URL,以便表中的最终记录如下:
我想在“销售”前面插入的字符串,但在同一条记录内:http://www.url.com?id= 如果给定的销售ID是1234,则表中的最终记录将为http://www.url.com?id=1234 感谢您提前的帮助。

2
谢谢你的帮助,Kay。我会尝试你提供的两个建议。我可以添加一个包含字符串的列作为默认值,在查询期间获取它并将变量拼接在一起。非常感谢! - DataGuy
1个回答

2
尝试类似这样的东西。
LOAD DATA LOCAL INFILE 'C:/test.csv' 
INTO TABLE test.test1 
FIELDS TERMINATED BY ';'
(@test1col,@test2col) 
set test1col=CONCAT('http://url.com?id=',@test1col),test2col=@test2col;

测试CSV文件包含2列。我创建了一个如下的测试表:

CREATE TABLE `test1` (
  `test1col` varchar(200) DEFAULT NULL,
  `test2col` varchar(2000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

你可以立即尝试自己操作,只需确保正确命名列名!

我已经成功尝试过,请您也试试!


1
搞定了,Kay。非常感谢你的帮助。 - DataGuy
如果我想在多个列上使用 CONCAT 函数,应该怎么分隔这些行呢?就像上面我在三列上使用的那样(已经添加到我的帖子中了)。 - DataGuy
Concat(column,column1) - Mad Dog Tannen
您还可以使用值进行分隔。CONCAT(column1,'一个文本值',column2) - Mad Dog Tannen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接