我可以将硬编码字符串与MySQL LOAD DATA INFILE中的列连接起来吗?

Can I concatenate a hard-coded string with a column in a MySQL LOAD DATA INFILE?

提问人:Pete Mahon 提问时间:10/2/2014 更新时间:10/2/2014 访问量:2569

问:

我有一个文件,其中包含一些MySQL命令,用于将单个列加载到数据库表中:

TRUNCATE TABLE datamap;

LOAD DATA LOCAL INFILE 'datamap.txt'
INTO TABLE datamap
Fields terminated by  ','
enclosed by    '"'
escaped by    '^'
Lines terminated by '\r\n'
(datapath);

数据路径文件包含文件及其目录的列表,即 x:\files\filename1.txt

现在所有文件都在一个目录中,我想将路径硬编码到上面的命令中,这样我就可以只加载文件名,但将完整路径保存到表中的列中。我知道我可以在上面添加一个额外的 UPDATE 语句来更新表中的每一列,但这似乎不是很有效。

LOAD DATA INFILE 命令是否支持将固定字符串与从文件中读入的数据连接起来?

mysql sql 加载数据文件

评论


答:

2赞 RandomSeed 10/2/2014 #1

http://dev.mysql.com/doc/refman/5.6/en/load-data.html

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    ...
    [(col_name_or_user_var,...)]
    [ SET col_name = expr,...]

处理输入行时,将其拆分为多个字段,并根据列/变量列表和子句(如果存在)使用值。然后,将生成的行插入到表中。LOAD DATASET

评论

0赞 Pete Mahon 10/5/2014
谢谢,但该页面实际上并没有回答我的问题。我特别想知道您是否可以连接一个字符串,该字符串在任何页面的示例中都没有。
4赞 fancyPants 10/2/2014 #2
TRUNCATE TABLE datamap;

LOAD DATA LOCAL INFILE 'datamap.txt'
INTO TABLE datamap
Fields terminated by  ','
enclosed by    '"'
escaped by    '^'
Lines terminated by '\r\n'
(col1, col2, @my_variable)
SET col3 = CONCAT('x:\files\', @my_variable);