Viac na
Ako vypisovať výsledky dotazov MySQL vo formáte CSV?
Existuje jednoduchý spôsob, ako spustiť dotaz MySQL z príkazového riadku Linuxu a vypisovať výsledky vo formáte CSV ?
Toto je to, čo teraz robím:
mysql -u uid -ppwd -D dbname << EOQ | sed -e 's/ /,/g' | tee list.csv
select id, concat("\"",name,"\"") as name
from students
EOQ
Keď je veľa stĺpcov, ktoré treba obklopiť úvodzovkami, alebo ak sú vo výsledkoch úvodzovky, ktoré treba escapovať, začne to byť neprehľadné.
1112
3
Z adresy http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/
Použitím tohto príkazu sa názvy stĺpcov neexportujú.
Tiež si uvedomte, že súbor
/var/lib/mysql-files/orders.csv
bude na serveri, na ktorom beží MySQL. Používateľ, pod ktorým beží proces MySQL, musí mať oprávnenia na zápis do zvoleného adresára, inak príkaz zlyhá.Ak chcete zapisovať výstup na lokálny počítač zo vzdialeného servera (najmä hostovaného alebo virtualizovaného počítača, ako je Heroku alebo Amazon RDS), toto riešenie nie je vhodné.
Takto získate súbor oddelený tabulátorom. Keďže sa čiarky (alebo reťazce obsahujúce čiarku) neeskvamujú, nie je jednoduché zmeniť oddeľovač na čiarku.
Alternatívou k vyššie uvedenej odpovedi môže byť tabuľka MySQL, ktorá využíva engine CSV.
Potom budete mať na pevnom disku súbor, ktorý bude vždy vo formáte CSV, ktorý môžete jednoducho skopírovať bez spracovania.