Mysql
 sql >> Database >  >> RDS >> Mysql

Come esportare la linea di interruzione '\n' in un file usando MySQL INTO OUTFILE

È una questione di sequenze di escape e ci sono diversi modi per farlo. Ho scelto semplicemente di inserire la virgoletta singola iniziale annidata all'interno delle virgolette doppie esterne verso la fine del primo modo (con 3 blocchi in concat ).

E le virgolette singole come secondo modo (con 2 blocchi in concat ):

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'

Dalla pagina di manuale di mysql su String Literals :