Περισσότερα
Πώς να εξάγετε τα αποτελέσματα του ερωτήματος MySQL σε μορφή CSV;
Υπάρχει ένας εύκολος τρόπος να εκτελέσετε ένα ερώτημα MySQL από τη γραμμή εντολών του Linux και να εξάγετε τα αποτελέσματα σε μορφή CSV ;
Εδώ είναι αυτό που κάνω τώρα:
mysql -u uid -ppwd -D dbname << EOQ | sed -e 's/ /,/g' | tee list.csv
select id, concat("\"",name,"\"") as name
from students
EOQ
Γίνεται ακατάστατο όταν υπάρχουν πολλές στήλες που πρέπει να περιβάλλονται από εισαγωγικά, ή αν υπάρχουν εισαγωγικά στα αποτελέσματα που πρέπει να διαφύγουν.
1112
3
Από το http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/
Με τη χρήση αυτής της εντολής τα ονόματα των στηλών δεν θα εξαχθούν.
Σημειώστε επίσης ότι το αρχείο
/var/lib/mysql-files/orders.csv
θα βρίσκεται στον server που τρέχει τη MySQL. Ο χρήστης με τον οποίο εκτελείται η διεργασία MySQL πρέπει να έχει δικαιώματα εγγραφής στον επιλεγμένο κατάλογο, αλλιώς η εντολή θα αποτύχει.Αν θέλετε να γράψετε την έξοδο στο τοπικό σας μηχάνημα από έναν απομακρυσμένο διακομιστή (ειδικά ένα μηχάνημα που φιλοξενείται ή εικονικοποιείται, όπως το Heroku ή το Amazon RDS), αυτή η λύση δεν είναι κατάλληλη.
Αυτό θα σας δώσει ένα αρχείο με διαχωρισμό καρτελών. Δεδομένου ότι τα κόμματα (ή οι συμβολοσειρές που περιέχουν κόμμα) δεν αποφεύγονται, δεν είναι απλό να αλλάξετε το διαχωριστικό σε κόμμα.
Εναλλακτικά προς την παραπάνω απάντηση, μπορείτε να έχετε έναν πίνακα MySQL που χρησιμοποιεί τη μηχανή CSV.
Τότε θα έχετε ένα αρχείο στον σκληρό σας δίσκο που θα είναι πάντα σε μορφή CSV, το οποίο θα μπορείτε απλώς να αντιγράψετε χωρίς να το επεξεργαστείτε.