In MySql's interpreter, it's very easy to dump a table to the screen along with its field names.
There seems to be no simple way to export a table to a tab-delimted or CSV outfile including its column headers.
I'm trying to do this using only SQL or the Linux command line, without writing a program in another language.
Thank you
MySQL workbench tool can be used to export the data from the table. Open the MySQL database wizard & select the table you want to export. Right-click on the table name & select the table data export wizard option.
You can do it very easily using MySQL GUI tools like SQLyog, PHPMyAdmin. In SQLyog you just need to select the table, Click on "Export As..." Icon and you will get dialog to select the columns that you want to Export. Then click on "Export Button".
Piping the query to the commandline client outputs a tab separated list with the column names as the first line
$ echo "select * from surveys limit 5" | mysql -uroot -pGandalf surveys
phone param1 param2 param3 param4 p0 p1 p2 p3 audio4 code time
XXXXXXXXX 2008-07-02 11:17:23 XXXXXXXX SAT - - - - - ERROR 2008-07-02 12:18:32
XXXXXXXXX 2008-07-02 11:22:52 XXXXXXXX SAT - - - - - COLGADO 2008-07-02 12:04:29
XXXXXXXXX 2008-07-02 11:41:29 XXXXXXXX SAT - - - - - COLGADO 2008-07-02 12:07:22
XXXXXXXXX 2008-07-02 12:16:19 XXXXXXXX SAT 1 1 1 9 XXXXXXXXX_4.wav OK 2008-07-02 16:14:27
XXXXXXXXX 2008-07-02 08:21:25 XXXXXXXX SAT 1 1 1 1 XXXXXXXXX_4.wav OK 2008-07-02 12:29:40
This little script should do it:
-- 1. choose the table and the output file here / this should be the only input
select 'mytable' into @tableName;
select 'c://temp/test.csv' into @outputFile;
-- 2. get the column names in a format that will fit the query
select group_concat(concat("'",column_name, "'")) into @columnNames from information_schema.columns
where table_name=@tableName;
-- 3. build the query
SET @query = CONCAT(
"select * from
((SELECT ",@columnNames,")
UNION
(SELECT * FROM `",@tableName,"`)) as a
INTO OUTFILE '", @outputFile, "'");
-- 4. execute the query
PREPARE stmt FROM @query;
EXECUTE stmt;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With