tabla importar exportar desde datos con archivo acentos mysql csv mysql-workbench

importar - exportar tabla mysql a excel php



Exportando tabla MySQL a un archivo csv (5)

Creo que estás buscando algo como esto.

SET @sql = NULL; SELECT GROUP_CONCAT("''",COLUMN_NAME,"''") FROM (SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA` = ''yourdatabasename'' and `TABLE_NAME`=''ffd_companies'' ) AS colnames GROUP BY ''COLUMN_NAME'' into @sql; SET @sql = concat ("SELECT", @sql, " from dual UNION ALL SELECT * FROM addstock25 INTO OUTFILE ''E://JOSE DATA//addstock7.csv'' FIELDS TERMINATED BY '','' ENCLOSED BY ''", ''"'',"'' )" ); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

Espero que esto te ayude.

Nota: agrego la cláusula WHERE TABLE_SCHEMA = ''yourdatabasename''

Tengo una tabla de MySQL que se debe sacar como archivo csv. La consulta que utilicé es

SELECT "ID","NAME","SALARY","SAL1","SAL2","SAL3","SAL4","SAL5","SAL6","SAL7","SAL8","SAL9","SAL10","SAL11","SAL12","SAL13","SAL14","SAL15","SAL16","SAL17","SAL18","SAL19","SAL20","SAL21","SAL22","SAL23","SAL24","SAL25","SAL26" UNION ALL SELECT * FROM addstock25 INTO OUTFILE "E://JOSE DATA//addstock7.csv" FIELDS TERMINATED BY '','' ENCLOSED BY ''"'' LINES TERMINATED BY ''/n'';

Esta consulta funciona, ¿y si tengo 200 nombres de columna? ¿Hay alguna manera de hacerlo sin escribirlo manualmente?


Este comando casi le da lo que quiere, e incluso funciona con un servidor remoto. La única advertencia es que genera archivos TSV (los campos están separados por una pestaña).

mysql mydb -e "select * from mytable" -B > mytable.tsv

Pero puedes convertirlo a CSV usando sed, como se sugiere en esta respuesta

mysql mydb -e "select * from mytable" -B | sed "s/''//'/;s//t//",/"/g;s/^//"/;s/$//"/;s//n//g" > mytable.csv


He integrado el script para código simple basado en UI. Aquí puede ingresar la consulta y simplemente puede obtener el archivo csv que contiene todas las filas, incluidos los nombres de columna.

Este script funciona tanto para Windows como para Linux.

https://github.com/Bihari12/databasetocsv

Esto guardaría el resultado en el archivo csv en la misma carpeta en la que existe el código.


No veo por qué no puedes hacer

SELECT * FROM addstock25 INTO OUTFILE "E://JOSE DATA//addstock7.csv" FIELDS TERMINATED BY '','' ENCLOSED BY ''"'' LINES TERMINATED BY ''/n

?


DESCRIBE addstock25;

Pele la primera columna y la primera entrada 3 de esa columna (depende de su uso). Obtendrá la lista de campos en addstock25.

Esto traerá solo nombres de campos usando tablas virtuales derivadas en el núcleo ... llamado esquema de información.

SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_NAME`=''foo'';

Digamos que el nombre de esta consulta sería sq_fieldnamelist

Entonces, la tabla anterior tiene una columna y tiene los nombres de campo de la tabla "foo".

Si escribo directamente así

SELECT (sq_fieldnamelist) UNION ALL SELECT * FROM addstock25 INTO OUTFILE "E://JOSE DATA//addstock7.csv" FIELDS TERMINATED BY '','' ENCLOSED BY ''"'' LINES TERMINATED BY ''/n

Mysql dará un error. "subconsulta devuelve fila múltiple"

Debemos editar sq_fieldnamelist para concat todas las entradas espalda con espalda separadas por comas.

Select GROUP_CONCAT(COLUMN_NAME) FROM (SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_NAME`=''ffd_companies'' LIMIT 3,100 ) AS fafa GROUP BY ''COLUMN_NAME'' // this group by is just to make group concat work

Digamos que esto es sq_fieldnamelist2

Si editamos sq_fieldnamelist como este. Solo devolverá un valor, que es todos los nombres de campo separados por comas. Así que ahora podemos colocar esta subconsulta en su declaración de selección para adquirir los campos necesarios.

SELECT (sq_fieldnamelist2) UNION ALL SELECT * FROM addstock25 INTO OUTFILE "E://JOSE DATA//addstock7.csv" FIELDS TERMINATED BY '','' ENCLOSED BY ''"'' LINES TERMINATED BY ''/n

Necesita editar LIMIT 3,100 en sq_fieldnamelist2 para su propio propósito.

digamos que su tabla es como fil1, fil2 ... filN, sal1, sal2, sal3 ...., salI para ver los únicos campos de salario que debe usar LIMIT N,x>I+N Si desea ver todos, utilice LIMIT 0,x>N+I