1

我正在尝试使用输入文件中未定义的值将数据导入 MySQL 表。我有这个 php 字符串连接查询:

"LOAD DATA LOCAL INFILE '".@mysql_escape_string($this->file_name).
"' IGNORE INTO TABLE `".$this->table_name.
"` FIELDS TERMINATED BY '".@mysql_escape_string($this->field_separate_char).
"' OPTIONALLY ENCLOSED BY '".@mysql_escape_string($this->field_enclose_char).
"' ESCAPED BY '".@mysql_escape_string($this->field_escape_char).
"' LINES TERMINATED BY '". $this->line_separate_char .
"' ".
($this->use_csv_header ? " IGNORE 1 LINES " : "")

有没有办法可以在这个加载语句中设置帐户 ID?

4

2 回答 2

2

LOAD DATA INFILE语法中所述:

SET子句可用于提供不是从输入文件派生的值。以下语句设置column3为当前日期和时间:

LOAD DATA INFILE 'file.txt'
  INTO TABLE t1
  (column1, column2)
  SET column3 = CURRENT_TIMESTAMP;
于 2013-10-08T17:46:26.373 回答
2

您可以像这样在加载数据中调用函数和 SQL 语句:

load data local infile '/tmp/foo.txt' into table foo 
fields terminated by '\t' lines terminated by '\n' 
(@col1, @col2) 
set myid=@col1, 
username=CONCAT(@col2, 'abc', 'xyz');
于 2014-01-03T23:28:26.850 回答