2 votes

Comment importer un fichier txt dans MySQL en conservant les caractères spéciaux ?

Je veux importer un fichier txt dans la base de données mysql en utilisant la commande

LOAD DATA LOCAL INFILE 'c:/mydatabase.txt' INTO TABLE mytable COLUMNS TERMINATED BY '\t'

Cependant, une colonne des données est un chemin de fichier qui contient un caractère spécial comme "\". J'ai constaté que la commande d'importation ci-dessus a simplement ignoré tous les "\" dans la chaîne de chemin d'accès.

Existe-t-il un moyen de conserver le caractère spécial lors de l'importation de données vers mysql ?

1voto

Jeremy Smyth Points 11001

LOAD DATA INFILE prend également en charge un FIELDS ESCAPED BY qui vous permet de spécifier le caractère que MySQL utilise pour identifier les caractères spéciaux dans une chaîne de caractères, tels que les guillemets simples dans une chaîne de caractères à guillemets simples, ou les caractères de tabulation (comme vous l'avez fait dans votre fichier d'aide à l'écriture). FIELDS TERMINATED BY clause, représentée par \t ).

La valeur par défaut de l'option FIELDS ESCAPED BY La clause est \ C'est pourquoi vos caractères de chemin sont interprétés par MySQL et ensuite ignorés ; l'échappement d'un caractère non spécial renvoie simplement ce caractère, donc \1 retourne simplement 1 . Vous auriez cependant des problèmes avec des noms de fichiers tels que c:\tmp\newfile parce que les deux \t y \n sont interprétés comme des caractères spéciaux.

Si vous laissez le caractère d'échappement vide en faisant FIELDS ESCAPED BY '' Si vous utilisez l'option d'échappement, votre importation n'interprétera pas les antislashes, mais vous risquez d'avoir d'autres problèmes si l'importation contient des caractères qui doivent être échappés. Vous le saurez en découvrant quel caractère d'échappement a été utilisé pour générer le fichier texte. FIELDS ESCAPED BY clause.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X