Author: admin

  • MySQL – OUTFILE example

    [adsense id=”0514458240″ width=”468″ height=”60″]

    MySQL provides a useful extension to SELECT statements allowing the contents to be placed into an external file.

    Consider the following dataset:

    mysql> select * from t1;
    +--------+------+------+
    | col1   | col2 | col3 |
    +--------+------+------+
    | ronan4 |  100 |  115 | 
    | ronan4 |  155 |  116 | 
    | ronan4 |  225 |  250 | 
    | ronan4 |  300 |  275 | 
    | ronan4 |  325 |  350 | 
    | ronan4 |    1 |    2 | 
    | ronan4 |    1 |    3 | 
    | t13    |    7 |    6 | 
    +--------+------+------+
    8 rows in set (0.01 sec)
    

    We want to return a single comma separated list of col1 entries:

    mysql> select group_concat(col1) from t1;
    +------------------------------------------------------+
    | group_concat(col1)                                   |
    +------------------------------------------------------+
    | ronan4,ronan4,ronan4,ronan4,ronan4,ronan4,ronan4,t13 | 
    +------------------------------------------------------+
    1 row in set (0.00 sec)
    

    In order to remove duplicates we will use the DISTINCT keyword:

    mysql> select group_concat(distinct col1) from t1;
    +-----------------------------+
    | group_concat(distinct col1) |
    +-----------------------------+
    | ronan4,t13                  | 
    +-----------------------------+
    1 row in set (0.00 sec)
    

    Now that we have determined our data set we want this output to a file:

    mysql> select group_concat(distinct col1) into outfile '/tmp/names.txt' from t1;
    Query OK, 1 row affected (0.00 sec)
    

    Looking at the contents of this file:

    $ cat /tmp/names.txt 
    ronan4,t13
    

    [googleplus]