How to export / dump a MySql table into a text file including the field names (aka headers or column names)

后端 未结 6 916
盖世英雄少女心
盖世英雄少女心 2020-11-29 05:05

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-delimt

相关标签:
6条回答
  • 2020-11-29 05:15

    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;
    
    0 讨论(0)
  • 2020-11-29 05:17

    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
    
    0 讨论(0)
  • 2020-11-29 05:21

    I have created a procedure to automate the exporting of the contents of a larger number of tables to .csv file by using SELECT ... INTO OUTFILE. Please refer to the following if you have need 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 described by cafe876, but will work for one or a whole series of tables, plus you can set the delimiter and quote character to be used.

    0 讨论(0)
  • 2020-11-29 05:29

    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 讨论(0)
  • 2020-11-29 05:36

    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 of mysql separates the columns by tabs, which are converted into commas using sed. Note that the headers are generated too.

    0 讨论(0)
  • 2020-11-29 05:38

    You can do this with the mysqldump command. Have a look at the --tab and --xml options.

    0 讨论(0)
提交回复
热议问题