Opción 1: Exportar una consulta SQL a CSV desde la consola Mysql
Si por ejemplo quieres que cada campo de tu consulta se separe con punto y coma y cada registro por un salto de línea windows (\r\n) o Unix (\n), lo que vendría a ser un CSV vaya!, solo tienes que hacer algo como:Puedes cambiar el formato fácilmente cambiando los caracteres. En este caso el fichero final estaría en la carpeta /tmp, un lugar fácil para evitar problemas de permisos
- SELECT
- *
- FROM
- tu_tabla
- WHERE
- condicion
- -- Aqui viene la exportación
- INTO OUTFILE
- '/tmp/fichero_salida.csv'
- FIELDS TERMINATED BY ';'
- OPTIONALLY ENCLOSED BY '\"'
- LINES TERMINATED BY '\r\n';
Opción 2: Exportar una consulta SQL a CSV desde terminal
Este método es todavía más simple, pero asume que quieres los campos separados por tabulación, cosa que si vas a usar un Excel o similar quizá sea lo más práctico y rápido.Para ello basta con pasar dos parámetros básicos:
- -e: Indicando la consulta que quieres hacer entre comillas
- -B: para indicar que quieres recibir la consulta en modo "batch" (campos separados por tabs)
... en la segunda tienes la parte que hace la exportación. Ahora tendrás en el fichero_salida.csv el resultado de la consulta delimitado por tabulaciones y si hay cualquier error lo verás por pantalla.
- mysql -u root --password=elquesea mibasededatos \
- -e "SELECT * FROM tabla where ...." -B > fichero_salida.csv