【问题标题】:Can I concatenate a hard-coded string with a column in a MySQL LOAD DATA INFILE?我可以将硬编码字符串与 MySQL LOAD DATA INFILE 中的列连接起来吗?
【发布时间】:2014-10-02 17:46:08
【问题描述】:

我有一个包含一些 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 load-data-infile


    【解决方案1】:
    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);
    

    【讨论】:

      【解决方案2】:

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

      加载数据 [LOW_PRIORITY |并发] [本地] INFILE 'file_name' ... [(col_name_or_user_var,...)] [ SET col_name = expr,...]

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

      【讨论】:

      • 谢谢,但该页面实际上并没有回答我的问题。我特别想知道您是否可以连接一个字符串,该字符串不在任何页面示例中。
      猜你喜欢
      • 1970-01-01
      • 2011-08-09
      • 2018-02-15
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 2013-10-09
      相关资源
      最近更新 更多