これはエスケープシーケンスの問題であり、それを行うにはいくつかの方法があります。最初の方法の終わり近くにある外側の二重引用符の内側に最初の一重引用符を入れることを選択しました(concat
に3つのチャンクを使用) )。
そして、2番目の方法として一重引用符(concat
に2つのチャンクを使用) ):
SET @filename = 'C:/icl/myfile.CSV';
-- C:/icl/myfile.CSV
SET @str = CONCAT('LOAD DATA INFILE ',@filename);
-- LOAD DATA INFILE C:/icl/myfile.CSV
-- First way is below (with the result being the line after it if you ignore the `-- ` at the beginning):
SET @str = CONCAT(@str," INTO TABLE icl_process_data.filecontent LINES TERMINATED BY '","\\n'");
-- LOAD DATA INFILE C:/icl/myfile.CSV INTO TABLE icl_process_data.filecontent LINES TERMINATED BY '\n'
-- Second way is below (with the result being the line after it if you ignore the `-- ` at the beginning):
SET @str = CONCAT('LOAD DATA INFILE ',@filename);
SET @str = CONCAT(@str,' INTO TABLE icl_process_data.filecontent LINES TERMINATED BY \'\\n\'');
-- LOAD DATA INFILE C:/icl/myfile.CSV INTO TABLE icl_process_data.filecontent LINES TERMINATED BY '\n'
文字列リテラル のmysqlマニュアルページから :