Exportar una consulta de Mysql en un fichero CSV

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:
  1. SELECT
  2. *
  3. FROM
  4. tu_tabla
  5. WHERE
  6. condicion
  7. -- Aqui viene la exportación
  8. INTO OUTFILE
  9. '/tmp/fichero_salida.csv'
  10. FIELDS TERMINATED BY ';'
  11. OPTIONALLY ENCLOSED BY '\"'
  12. LINES TERMINATED BY '\r\n';
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

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)
Supongamos que nos conectamos a mysql, con el contenido de la primera línea...
  1. mysql -u root --password=elquesea mibasededatos \
  2. -e "SELECT * FROM tabla where ...." -B > fichero_salida.csv
... 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.
Para que ste blog siga creciendo:


Visitenos en:

Instagram