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 " : "")

この load ステートメントでアカウント ID を設定する方法はありますか?

4

2 に答える 2

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 に答える
2

LOAD DATA INFILESyntaxの下に記載されているように:

このSET句を使用して、入力ファイルから派生したものではない値を指定できます。次のステートメントはcolumn3、現在の日付と時刻に設定します。

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