2011-05-30 2 views
0

J'essaie de générer une requête SQL dans un fichier CSV mais je ne peux pas ajouter deux options qui m'aideront à le configurer. Voici la partie de la demande qui fonctionne bien:comment ajouter des propriétés avec un devis à une conception de requête MySQL pour générer un CSV

mysql --host=localhost --user=root --password=pass --quick -e 'SELECT * FROM DB.TABLE' > '/stupidpath withaspace/stuff/myrep/export.csv' 

Je voudrais ajouter ces deux options à cette demande, mais il y a quelque chose avec la citation que je ne comprends pas:

FIELDS TERMINATED BY ',' 

et

ENCLOSED BY '"' 

Comment puis-je intégrer cela?

Répondre

1

Probablement le moyen le plus facile est de mettre votre SQL d'exportation dans un fichier séparé, puis alimenter en mysql. Le fichier SQL, exporter.sql, ressemblerait à ceci:

SELECT * INTO OUTFILE '/stupidpath withaspace/stuff/myrep/export.csv' 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' 
FROM DB.TABLE; 

Et puis exécutez avec:

mysql --host=localhost --user=root --password=pass --quick < exporter.sql 

Mettre le SQL dans un fichier séparé évite l'habitude de s'échapper et citant des problèmes d'essayer d'envoyer des citations en quelque chose de la coquille.

+0

Thx Je jette déjà un coup d'oeil à la propriété OUTFILE mais ça ne marche qu'une seule fois, j'ai besoin d'exécuter cette requête une fois par jour (ce sera un travail php cron) – krifur

+0

@krifur: alors vous auriez encore plus citation des problèmes avec le shell et PHP se combattant :) Vous pourriez faire ce qui précède avec un heredoc en PHP qui irait dans l'entrée standard 'mysql' ou demander à votre travail cron PHP d'écrire le SQL dans un fichier temporaire, puis supprimer la température fichier une fois terminé. –

Questions connexes