MySQL: retour de chariot dans la requête
J'ai une requête qui exporte les données de deux colonnes de chaque ligne dans un fichier. Dans le fichier de données de chaque colonne doivent être séparés par un retour-chariot, quelque chose comme ceci:
row1column1
row1column2
row2column1
row2column2
row3column1
row3column2
J'ai essayé d'utiliser char(13):
SELECT CONCAT(column1, char(13), column2) FROM my_table INTO outfile 'my_file'
et le fichier de sortie semblait parfaitement bien (chaque colonne de données dans une autre ligne), mais quand je l'ai utilisé comme entrée pour un programme qui doit accepter décrit le format, il n'a pas le reconnaître. Cependant, lorsque j'ai effacé manuellement toutes les opérations de transport, est de retour dans le fichier et l'ajout de nouveau en appuyant sur la touche "entrée", mon programme reconnu le fichier sans problème.
Quand j'ai essayé avec char(13), char(10), mon fichier de sortie ressemble à ceci:
row1column1
\
row1column2
row2column1
\
row2column1
Je suis sûr que je suis absent quelque chose d'évident ici 🙂
OriginalL'auteur Daniel | 2009-06-23
Vous devez vous connecter pour publier un commentaire.
je le vois dans le site de mysql, l'espoir de son aide u.
OriginalL'auteur Haim Evgi
Haim Evgi la réponse de travaux, mais:
J'ai dû changer de:
Il y avait une double quote dans le FIELDS ESCAPED BY, qui a donné cette erreur mysql: "Erreur 1083: séparateur de Champ argument n'est pas ce que l'on attend; consultez le manuel".
De le changer pour un seul devis cessé de l'erreur et de l'exportation d'un fichier. J'ai été en mesure de les importer dans excel avec succès avec les retours à la ligne formatée correctement.
OriginalL'auteur RandallK
Essayez juste de char(10) - c'est "\n" sous UNIX.
Juste char(13) "\r" est la (vieille) de manière mac et "\r\n" est la façon dont windows, mais je soupçonne que MySQL utilise juste \n pour chaque ligne, de sorte que vous aurez besoin de correspondre à ce que.
Notez que pour obtenir la requête de travailler sur la CLI (mysql -Ne), j'ai eu à utiliser-r Écrire les champs sans conversion. Utilisée avec --batch. HTH, Dan.
OriginalL'auteur Greg
Vous avez probablement des problèmes avec des différences dans l'interprétation de saut de ligne entre les systèmes d'exploitation.
Si votre base de données MySQL est sur Unix/Linux, un fichier sera lu sur Unix ou de la base de données est sur Windows et sera lu sur Windows alors essayez ceci:
Si votre base de données MySQL est sur Unix/Linux, un fichier sera lu sur Windows alors essayez ceci:
Vous pouvez également convertir un fichier entre "CRLF" (Windows) et "LF" (Unix) retours à la ligne à l'aide d'un petit utilitaire de ligne de commande appelé dos2unix et unix2dos, qui est inclus dans la plupart des distributions Linux.
OriginalL'auteur Tometzky