Exporter une table MySQL dans un fichier csv
J'ai une table MySQL qui doit être pris comme un fichier csv, La requête que j'ai utilisé est
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';
Cette requête fonctionne, ce qui si j'ai 200 noms de colonne?
Est-il possible de le faire sans avoir à entrer manuellement il?
- double possible de dump MySQL en CSV fichiers texte avec les noms de colonne en haut?
- mysqldump avec --onglet devrait être le moyen le plus facile ici avec aucune autre script requise. J'ai écrit 3 façons de convertir MySQL au format CSV dans le détail.
Vous devez vous connecter pour publier un commentaire.
Cette commande donne presque tout ce que vous voulez, et il fonctionne même avec un serveur distant. Le seul inconvénient est qu'il génère un TSV fichiers (les champs sont séparés par une tabulation).
Mais vous pouvez les convertir au format CSV à l'aide de sed, comme suggéré dans cette réponse
Bande de la première colonne et la première entrée 3 de la colonne (dépend de votre utilisation). Vous obtiendrez la liste des champs de la addstock25.
Cela ne vous apportera que des noms de champ à l'aide des tables virtuelles dérivés à base... de l'information de schéma.
Permet de dire le nom de cette requête serait sq_fieldnamelist
Donc,
tableau ci-dessus ont une colonne, et il a les noms de champ de th "foo" de la table.
Si directement écrire comme cela
Mysql va donner une erreur. "sous-requête renvoie plusieurs lignes"
Nous devons modifier sq_fieldnamelist à la concaténation de toutes les entrées dos-à-dos séparé par des virgules.
Permet de dire que c'est sq_fieldnamelist2
Si nous modifier sq_fieldnamelist comme ça. Il sera de retour une seule valeur qui est tous les noms de champs séparés par des virgules. Alors maintenant, nous pouvons mettre cette sous-requête pour votre instruction select pour acquérir les champs nécessaires.
Vous avez besoin de modifier la LIMITE de 3 100 en sq_fieldnamelist2 pour votre propre usage.
permet de dire que votre table est comme fil1,fil2...filN,sal1,sal2,sal3....,salI pour voir le seul salaire de champs que vous devez utiliser
LIMIT N,x>I+N
. si vous voulez voir tous les utiliserLIMIT 0,x>N+I
Je ne vois pas pourquoi vous ne pouvez pas faire
?
Je pense que vous êtes à la recherche de quelque chose comme cela.
Espère que cela vous aide.
Note: j'ai ajouter la clause where
TABLE_SCHEMA
= 'yourdatabasename'COLUMN_NAME
DEINFORMATION_SCHEMA
.COLUMNS
OÙTABLE_SCHEMA
= 'yourdatabase" ETTABLE_NAME
= 'ffd_companies') COMME colnames GROUPE PAR "COLUMN_NAME" DANS @sql; SET @sql = concat ("SELECT", @sql, " à partir de la double union all( SELECT * from ffd_companies )" ); PRÉPARER stmt DE @sql; EXECUTE stmt; DÉSALLOUER PRÉPARER stmt;J'ai intégré le script pour la simple INTERFACE utilisateur à base de code.
Ici, vous pouvez entrer la requête et ne peuvent tout simplement obtenir le fichier csv contenant toutes les lignes, y compris les noms de colonne.
Ce script fonctionne pour les systèmes windows et linux.
https://github.com/Bihari12/databasetocsv
Cela permettrait de sauvegarder le résultat dans un fichier csv dans le même dossier dans lequel le code existe.