Generate .csv file from table data
===========================
2 ways:
A> From MySQL Prompt:
1> Logon to MySQL
mysql -utest -ptest -Dpractice
2> Load Data:
mysql> select locationId,country,latitude,longitude from cityLoc limit 10 INTO OUTFILE '/tmp/cityLocs1.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Query OK, 10 rows affected (0.00 sec)
Note: The above method will generate an error, if the file already exists.
B> From shell script:
1> export del=','
2> mysql -utest -ptest -Dpractice --skip-column-names -e"select concat(locationId,'$del',IFNULL(country,''),'$del',latitude,'$del',longitude) from cityLoc limit 10 ;" > /tmp/cityLocs2.csv
Note: For both cases, need to add column header line at the top
COLHEADER='locationId,country,latitude,longitude'
sed -i 1i"$COLHEADER" /tmp/file.csv
Modification: Lets say, need to add "'" (single quote) around varchar columns:
mysql> select locationId,concat('\'',country,'\''),latitude,longitude from cityLoc limit 10 INTO OUTFILE '/tmp/cityLocs2.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
Special keywords:
INTO OUTFILE '/tmp/cityLocs.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
===========================
2 ways:
A> From MySQL Prompt:
1> Logon to MySQL
mysql -utest -ptest -Dpractice
2> Load Data:
mysql> select locationId,country,latitude,longitude from cityLoc limit 10 INTO OUTFILE '/tmp/cityLocs1.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Query OK, 10 rows affected (0.00 sec)
Note: The above method will generate an error, if the file already exists.
B> From shell script:
1> export del=','
2> mysql -utest -ptest -Dpractice --skip-column-names -e"select concat(locationId,'$del',IFNULL(country,''),'$del',latitude,'$del',longitude) from cityLoc limit 10 ;" > /tmp/cityLocs2.csv
Note: For both cases, need to add column header line at the top
COLHEADER='locationId,country,latitude,longitude'
sed -i 1i"$COLHEADER" /tmp/file.csv
Modification: Lets say, need to add "'" (single quote) around varchar columns:
mysql> select locationId,concat('\'',country,'\''),latitude,longitude from cityLoc limit 10 INTO OUTFILE '/tmp/cityLocs2.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
Special keywords:
INTO OUTFILE '/tmp/cityLocs.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
No comments:
Post a Comment