[ACCEPTED]-How to export / dump a MySql table into a text file including the field names (aka headers or column names)-field
Piping the query to the commandline client 2 outputs a tab separated list with the column 1 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 4 the table and the output file here / this 3 should be the only input
select 'mytable' into @tableName;
select 'c://temp/test.csv' into @outputFile;
-- 2. get the column 2 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 1 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;
I achieved that in this way:
echo "select * from table"| mysql database -B -udbuser -puser_passwd | sed s/\\t/,/g > query_output.csv
The -B option 3 of mysql separates the columns by tabs, which 2 are converted into commas using sed. Note 1 that the headers are generated too.
I have created a procedure to automate the 8 exporting of the contents of a larger number 7 of tables to .csv file by using SELECT ... INTO OUTFILE
. Please 6 refer to the following if you have need 5 for something like this
http://lifeboysays.wordpress.com/2012/06/23/mysql-how-to-export-data-to-csv-with-column-headers/.
It uses the method 4 described by cafe876, but will work for 3 one or a whole series of tables, plus you 2 can set the delimiter and quote character 1 to be used.
I used the above command and modified according to my requirement.
I needed to get passwords column from the wordpress mysql database in a text file , to do that i used the following below command
echo "select user_pass from wp_users"| mysql -uroot -proot wp_database > passwordList.txt
0
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.