Kaip rodyti MySQL užklausų rezultatus CSV formatu?

Ar yra paprastas būdas pradėti „MySQL“ užklausą iš „Linux“ komandų eilutės ir išleisti rezultatus CSV formatu?

Štai ką aš darau dabar:

 mysql -u uid -ppwd -D dbname << EOQ | sed -e 's/ /,/g' | tee list.csv select id, concat("\"",name,"\"") as name from students EOQ 

Tai tampa neįprastu, kai yra daug stulpelių, kuriuos reikia supa kabučių, arba jei yra rezultatų, kurių reikia pabėgti, kabučių.

982
10 дек. MCS nustatytas gruodžio 10 d 2008-12-10 18:59 '08 18:59 2008-12-10 18:59
@ 30 atsakymų

Nuo http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/

 SELECT order_id,product_name,qty FROM orders WHERE foo = 'bar' INTO OUTFILE '/var/lib/mysql-files/orders.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; 

Naudodami šią komandą stulpelių pavadinimai nebus eksportuojami.

Taip pat atkreipkite dėmesį, kad /var/lib/mysql-files/orders.csv bus serveryje, kuriame veikia „MySQL“. Naudotojas, kuris naudoja „MySQL“ procesą, turi turėti rašymo prieigą prie pasirinkto katalogo arba komanda neveikia.

Jei norite įrašyti išvestį į vietinį kompiuterį iš nuotolinio serverio (ypač su prieglobos arba virtualizuota mašina, pvz., „Heroku“ ar „Amazon RDS“), šis sprendimas nėra tinkamas.

1511
10 дек. Atsakymą pateikė Paul Tomblin gruodžio 10 d. 2008-12-10 19:07 '08 at 7:07 pm 2008-12-10 19:07
 $ mysql your_database --password=foo < my_requests.sql > out.csv 

Atsidarys skirtukas. Pipe it like this, kad gautumėte tikrą CSV (ačiū @therefromhere):

border=0
 ... .sql | sed 's/\t/,/g' > out.csv 
382
08 апр. atsakymas pateikiamas Stan 08 balandžio. 2010-04-08 19:53 '10, 19:53, 2010-04-08 19:53

mysql -batch, -B

Spausdinkite rezultatus naudodami skirtuką kaip stulpelio separatorių, kiekviena eilutė yra nauja eilutėje. Naudodami šią parinktį, mysql nenaudoja istorijos failo. Partijos režimas lemia nereguliarų išvesties formatą ir išeina iš specialių simbolių. Pabėgimas gali būti išjungtas naudojant neapdorotą; žr. parinkties -raw aprašymą.

Tai suteiks atskirą skirtukų skirtuką. Kadangi kableliai (arba eilutės, kuriose yra kablelis) nėra atstatyti, nėra lengva keisti ribotuvą į kablelį.

182
30 сент. Atsakymas suteiktas 30 sep . 2009-09-30 13:51 '09, 13:51 2009-09-30 13:51

Čia yra gana grubus būdas tai padaryti. Rasta kažkur, negali gauti paskolos

mysql --user=wibble --password wobble -B -e "select * from vehicle_categories;" | sed "s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > vehicle_categories.csv

Jis veikia gerai. Dar kartą, nors įprasta išraiška įrodo tik įrašą.


„Regex“ paaiškinimas:

  • s /// reiškia pakeitimą tarp pirmojo // taip, kad tarp antro //
  • „G“ pabaigoje yra modifikatorius, kuris reiškia „visus atvejus, ne tik pirmuosius“
  • ^ (šiame kontekste) reiškia linijos pradžią
  • $ (šiame kontekste) reiškia linijos pabaigą

Taigi visi kartu:

 s/'/\'/ replace ' with \' s/\t/\",\"/g replace all \t (tab) with "," s/^/\"/ at the beginning of the line place a " s/$/\"/ at the end of the line place a " s/\n//g replace all \n (newline) with nothing 
117
22 марта '11 в 20:31 2011-03-22 20:31 atsakymą pateikė Tim Harding kovo 11 d. 11 val. 20:31 2011-03-22 20:31

„Unix“ / „ Cygwin“ , paleiskite jį per „tr“:

 mysql <database> -e "<query here>" | tr '\t' ',' > data.csv 

NB: nenaudojame įmontuotų kablelių ar įmontuotų skirtukų.

79
11 окт. atsakymas duotas strickli 11 okt. 2012-10-11 18:19 '12, 18:19, 2012-10-11 18:19

Tai išgelbėjo mane porą kartų. Greitas ir veikia!

- paketas

- žalia

Pavyzdys:

35
29 янв. atsakymas pateikiamas hrvoj3e sausio 29 d 2016-01-29 16:52 '16 at 16:52 2016-01-29 16:52

„OUTFILE“ sprendimas, kurį pateikė Paul Tomblin, sukelia failo įrašymą į „MySQL“ serverį, todėl jis veiks tik tuomet, jei turėsite failą , taip pat prieigą prie prisijungimo ar kitokių failų ištraukimo iš šio lauko.

Jei neturite šios prieigos, o skirtukų atskyrimas yra pagrįstas CSV pakaitalas (pavyzdžiui, jei galutinis tikslas yra importuoti į „Excel“), tuomet „Serbaut“ sprendimas (naudojant „ mysql --batch ir pasirinktinai „ --raw ) yra kelią.

35
22 июня '10 в 16:48 2010-06-22 16:48 Atsakymą pateikė Leland Woodbury , birželio 22 d., 10 val., 4:48, 2010-06-22 16:48

„MySQL Workbench“ gali eksportuoti įrašus į CSV ir, atrodo, puikiai tvarko kablelius laukuose. CSV atidaromas OpenOffice sistemoje.

31
26 июня '12 в 20:15 2012-06-26 20:15 Atsakymą davė Davidas Oliveris birželio 26 d. 12 d. 8:15 val. 2012-06-26 20:15

Kaip apie:

 mysql your_database -p < my_requests.sql | awk '{print $1","$2}' > out.csv 
31
10 нояб. Atsakymą pateikė Steve lapkričio 10 d. 2011-11-10 21:41 '11 prie 21:41 2011-11-10 21:41

Visi šiandienos sprendimai, išskyrus „MySQL“ darbo stalą, yra neteisingi ir galbūt nesaugūs (pvz., Saugumo problemos), bent jau tam tikram turiniui „mysql db“.

„MySQL Workbench“ (ir panašiai kaip „PHPMyAdmin“) suteikia formaliai teisingą sprendimą, tačiau yra sukurtos, kad būtų galima įkelti išvestį į vartotojo vietą. Jos nėra tokios naudingos, kaip automatizuoti duomenų eksportą.

Neįmanoma patikimai pataisyti csv iš mysql -B -e 'SELECT ...' , nes jis negali koduoti vežimo grąžinimo ir lauko laukų. „Mysql“ „-s“ vėliavėlė veikia atvirkščiai, ir gali sukelti teisingą sprendimą. Tačiau, naudojant skriptų kalbą (vieną, kurioje yra tinkamų vidinių duomenų struktūrų, o ne bash), ir bibliotekas, kurios buvo kruopščiai suprojektuotos su kodavimo problemomis, yra daug saugesnės.

Aš maniau apie tai rašyti scenarijų, bet kai tik galvojau, ką norėčiau pasakyti, man teko ieškoti anksčiau egzistuojančio darbo su tuo pačiu pavadinimu. Nors aš ne visiškai persijungiau, sprendimas https://github.com/robmiller/mysql2csv atrodo perspektyvus. Priklausomai nuo jūsų programos, „yaml“ požiūris į SQL komandų nustatymą gali būti arba gali būti malonus. Taip pat nesu patenkintas naujesnės rubinų versijos poreikiu nei standartinis su mano „Ubuntu 12.04“ nešiojamuoju kompiuteriu arba „Squeeze Debian“ serveriu. Taip, žinau, kad galiu naudoti RVM, bet aš nenoriu, kad jis būtų toks paprastas.

Tikiuosi, kad kas nors nurodys tinkamą įrankį, kuris buvo išbandytas šiek tiek. Priešingu atveju tikriausiai jį atnaujinsiu, kai rasiu ar rašysiu.

25
11 окт. atsakymas pateikiamas mc0e 11 okt. 2013-10-11 08:04 '13, 08:04 2013-10-11 08:04

Iš komandų eilutės galite tai padaryti:

 mysql -h *hostname* -P *port number* --database=*database_name* -u *username* -p -e *your SQL query* | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > *output_file_name.csv* 

Kreditai: lentelės eksportavimas iš „Amazon RDS“ į csv failą

21
25 июня '15 в 9:50 2015-06-25 09:50 atsakymą pateikė Sri Murthy Upadhyayula birželio 25 d., 15 val. 9:50 2015-06-25 09:50

Daugelis šiame puslapyje pateiktų atsakymų yra silpni, nes jie nereglamentuoja bendrojo atvejo, kas gali įvykti CSV formatu. pavyzdžiui, kableliai ir kabutės, įterptos laukuose ir kitose sąlygose, kurios visada pasirodo pabaigoje. Mums reikia bendro sprendimo, kuris veiktų visiems galiojantiems CSV įvesties duomenims.

Čia yra paprastas ir galingas sprendimas „Python“:

 #!/usr/bin/env python import csv import sys tab_in = csv.reader(sys.stdin, dialect=csv.excel_tab) comma_out = csv.writer(sys.stdout, dialect=csv.excel) for row in tab_in: comma_out.writerow(row) 

Pavadinkite šį failą tab2csv , įdėkite jį į savo kelią, suteikite jam leidimus vykdyti, tada naudokite jį sąraše:

 mysql OTHER_OPTIONS --batch --execute='select * from whatever;' | tab2csv >outfile.csv 

CSV apdorojimo „Python“ funkcijos apima „CSV“ įvesties formato (-ų) kampinius atvejus.

Tai gali būti patobulinta, kad būtų galima tvarkyti labai didelius failus naudojant srautinį srautą.

14
01 февр. Chris Johnson atsakymas, pateiktas vasario 01 d 2016-02-01 08:52 '16 at 8:52 AM 2016-02-01 08:52
  • logika:

CREATE TABLE () (SELECT data FROM other_table ) ENGINE=CSV ;

Kuriant CSV lentelę, serveris sukuria lentelės formato failą duomenų bazės kataloge. Failas prasideda lentelės pavadinimu ir turi .frm. Saugojimo variklis taip pat sukuria duomenų failą. Jo pavadinimas prasideda lentelės pavadinimu ir turi plėtinį .CSV. Duomenų failas yra paprastas tekstinis failas. Kai saugote duomenis lentelėje, saugojimo variklis jį įrašo į duomenų failą kableliais atskirtos vertės formatu.

13
07 мая '14 в 11:41 2014-05-07 11:41 atsakymas pateikiamas zloctb 07 gegužės 14 d. 11:41 2014-05-07 11:41

Tai paprasta ir ji veikia nieko, nereikalaujant paketinio režimo ar išvesties failų:

 select concat_ws(',', concat('"', replace(field1, '"', '""'), '"'), concat('"', replace(field2, '"', '""'), '"'), concat('"', replace(field3, '"', '""'), '"')) from your_table where etc; 

Paaiškinimas:

  • Pakeiskite "" kiekviename lauke → pakeiskite (laukas1, "", "" ")
  • Apskriti kiekvieną rezultatą su kabutėmis → concat ('' ', rezultatas1,' '')
  • Uždėkite kablelį tarp kiekvieno minėto rezultato → concat_ws (',', cituota1, cituota2, ...)

Kas tai yra!

9
06 дек. Marty Hirsch atsakymas 06 dec. 2011-12-06 21:50 '11, 21:50, 2011-12-06 21:50

Jei norite išplėsti ankstesnius atsakymus, sekančioje vienoje eilutėje esantis failas eksportuoja vieną lentelę kaip atskirą failą. Jis tinka automatizuoti eksportuojant duomenų bazę kiekvieną dieną.

 mysql -B -D mydatabase -e 'select * from mytable' 

Patogiai, mes galime naudoti tą patį metodą, kad galėtume išvardyti MySQL lenteles ir aprašyti laukus vienoje lentelėje:

 mysql -B -D mydatabase -e 'show tables' mysql -B -D mydatabase -e 'desc users' Field Type Null Key Default Extra id int(11) NO PRI NULL auto_increment email varchar(128) NO UNI NULL lastName varchar(100) YES NULL title varchar(128) YES UNI NULL userName varchar(128) YES UNI NULL firstName varchar(100) YES NULL 
8
23 окт. johntellsall atsakymas spalio 23 d 2014-10-23 19:09 '14, 19:09, 2014-10-23 19:09

Kaip alternatyvą aukščiau pateiktam atsakymui, galite turėti „MySQL“ lentelę, kurioje naudojamas CSV mechanizmas.

Tada kietajame diske turėsite failą, kuris visada bus CSV formatu, kurį galite tiesiog nukopijuoti be jo apdorojimo.

8
11 дек. Atsakymą pateikė Jonathanas, gruodžio 11 d. 2008-12-11 02:34 '08 at 2:34 nuo 2008-12-11 02:34

Šis atsakymas naudojamas „Python“ ir populiariosios trečiosios šalies „ PyMySQL“ bibliotekoje. Pridedu, nes „Python csv“ biblioteka yra pakankamai galinga, kad galėtų tinkamai tvarkyti įvairias .csv rūšis ir jokie kiti atsakymai nenaudoja Python kodo, kad galėtų bendrauti su duomenų baze.

 import contextlib import csv import datetime import os # https://github.com/PyMySQL/PyMySQL import pymysql SQL_QUERY = """ SELECT * FROM my_table WHERE my_attribute = 'my_attribute'; """ # embedding passwords in code gets nasty when you use version control # the environment is not much better, but this is an example # http://stackoverflow.com/questions/12461484/is-it-secure-to-store-passwords-as-environment-variables-rather-than-as-plain-t SQL_USER = os.environ['SQL_USER'] SQL_PASS = os.environ['SQL_PASS'] connection = pymysql.connect(host='localhost', user=SQL_USER, password=SQL_PASS, db='dbname') with contextlib.closing(connection): with connection.cursor() as cursor: cursor.execute(SQL_QUERY) # Hope you have enough memory :) results = cursor.fetchall() output_file = 'my_query-{}.csv'.format(datetime.datetime.today().strftime('%Y-%m-%d')) with open(output_file, 'w', newline='') as csvfile: # http://stackoverflow.com/a/17725590/2958070 about lineterminator csv_writer = csv.writer(csvfile, lineterminator='\n') csv_writer.writerows(results) 
8
25 янв. Atsakymą duoda Ben 25 d. 2017-01-25 02:02 '17 at 2:02 2017-01-25 02:02

Be to, jei paleidžiate užklausą „Bash“ komandinėje eilutėje, manau, kad tr komanda gali būti naudojama pakeisti numatytuosius skirtukus su savavališkais ribotuvais.

$ echo "SELECT * FROM Table123" | mysql Database456 | tr "\t" ,

8
13 янв. Atsakymas duotas Brian 13 jan. 2018-01-13 18:17 '18, 18:17 pm 2018-01-13 18:17

Remiantis user7610, čia yra geriausias būdas tai padaryti. Su mysql outfile buvo 60 minučių failo nuosavybės ir problemų perrašymo.

Tai nėra kietas, tačiau jis veikė po 5 minučių.

php csvdump.php localhost root password database tablename > whatever-you-like.csv

 <?php $server = $argv[1]; $user = $argv[2]; $password = $argv[3]; $db = $argv[4]; $table = $argv[5]; mysql_connect($server, $user, $password) or die(mysql_error()); mysql_select_db($db) or die(mysql_error()); // fetch the data $rows = mysql_query('SELECT * FROM ' . $table); $rows || die(mysql_error()); // create a file pointer connected to the output stream $output = fopen('php://output', 'w'); // output the column headings $fields = []; for($i = 0; $i < mysql_num_fields($rows); $i++) { $field_info = mysql_fetch_field($rows, $i); $fields[] = $field_info->name; } fputcsv($output, $fields); // loop over the rows, outputting them while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row); ?> 
5
29 мая '15 в 21:36 2015-05-29 21:36 atsakė Michael Cole gegužės 29 d., 15 val. 21:36 2015-05-29 21:36

Ne taip, kaip CSV formato, bet MySQL“ kliento komanda gali būti naudojama išsaugoti išvestį į vietinį failą:

 tee foobar.txt SELECT foo FROM bar; 

Jį galite išjungti naudodami notee .

Problema su SELECT … INTO OUTFILE …; tai reiškia, kad tam reikia leidimo rašyti failus į serverį.

5
29 мая '14 в 21:14 2014-05-29 21:14 atsakymą pateikė Denilson Sá Maia , gegužės 29 d. 14, 14:14 2014-05-29 21:14

Štai ką aš darau:

 echo $QUERY | \ mysql -B $MYSQL_OPTS | \ perl -F"\t" -lane 'print join ",", map {s/"/""/g; /^[\d.]+$/ ? $_ : qq("$_")} @F ' | \ mail -s 'report' person@address 

Perl scenarijus (snaiperis iš kitos vietos) atlieka gerą darbą, kad skirtukų laukus konvertuotų į CSV.

5
07 июля '11 в 20:34 2011-07-07 20:34 atsakymas pateikiamas ekstraplanetiniu liepos 07 d., 11 val. 20:34 2011-07-07 20:34

Naudodamas „Tim“ išsiųstą sprendimą, sukūriau šį „bash“ scenarijų, kad palengvintumėte procesą (buvo prašomas root slaptažodis, bet galite lengvai pakeisti scenarijų, kad galėtumėte prašyti kito vartotojo):

 #!/bin/bash if [ "$1" == "" ];then echo "Usage: $0 DATABASE TABLE [MYSQL EXTRA COMMANDS]" exit fi DBNAME=$1 TABLE=$2 FNAME=$1.$2.csv MCOMM=$3 echo "MySQL password:" stty -echo read PASS stty echo mysql -uroot -p$PASS $MCOMM $DBNAME -B -e "SELECT * FROM $TABLE;" | sed "s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > $FNAME 

Jis sukurs failą, pavadintą: database.table.csv

3
16 мая '13 в 11:04 2013-05-16 11:04 atsakymas duotas lepe gegužės 16, 13, 11:04 2013-05-16 11:04

Jei serveryje įdiegta PHP, galite naudoti mysql2csv eksportuoti (faktiškai galiojantį) CSV failą savavališkam mysql užklausai. Žr. Mano atsakymas MySQL - SELECT * INTO OUTFILE LOCAL? šiek tiek daugiau konteksto / informacijos.

Bandžiau išsaugoti parinkčių pavadinimus iš „ mysql , kad būtų pakankamai, kad galėtumėte pateikti --file ir - --query :

 ./mysql2csv --file="/tmp/result.csv" --query='SELECT 1 as foo, 2 as bar;' --user="username" --password="password" 

„Install“ mysql2csv per

 wget https://gist.githubusercontent.com/paslandau/37bf787eab1b84fc7ae679d1823cf401/raw/29a48bb0a43f6750858e1ddec054d3552f3cbc45/mysql2csv -O mysql2csv -q  (sha256sum mysql2csv | cmp <(echo "b109535b29733bd596ecc8608e008732e617e97906f119c66dd7cf6ab2865a65 mysql2csv") || (echo "ERROR comparing hash, Found:" ;sha256sum mysql2csv) )  chmod +x mysql2csv 

(Atsisiųskite subjekto turinį, patikrinkite kontrolinę sumą ir padarykite jį vykdomą).

2
16 мая '18 в 13:19 2018-05-16 13:19 atsakymas Hirnhamsteriui gegužės 16 d., 18 val. 19:19 - 16:13 13:19

Išbandykite šį kodą:

 SELECT 'Column1', 'Column2', 'Column3', 'Column4', 'Column5' UNION ALL SELECT column1, column2, column3 , column4, column5 FROM demo INTO OUTFILE '/tmp/demo.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; 

Daugiau informacijos: http://dev.mysql.com/doc/refman/5.1/en/select-into.html

1
08 сент. Indrajeet Singh atsakymas, 2008 m. Rugsėjo 8 d 2014-09-08 15:06 '14, 15:06 2014-09-08 15:06

Nedidelis „bash“ scenarijus, skirtas paprasta užklausa CSV sąvartynui, įkvėptas ngn-wiki.ru.site/questions/11692 / ....

 #!/bin/bash # $1 = query to execute # $2 = outfile # $3 = mysql database name # $4 = mysql username if [ -z "$1" ]; then echo "Query not given" exit 1 fi if [ -z "$2" ]; then echo "Outfile not given" exit 1 fi MYSQL_DB="" MYSQL_USER="root" if [ ! -z "$3" ]; then MYSQL_DB=$3 fi if [ ! -z "$4" ]; then MYSQL_USER=$4 fi if [ -z "$MYSQL_DB" ]; then echo "Database name not given" exit 1 fi if [ -z "$MYSQL_USER" ]; then echo "Database user not given" exit 1 fi mysql -u $MYSQL_USER -p -D $MYSQL_DB -B -s -e "$1" | sed "s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > $2 echo "Written to $2" 
1
01 марта '18 в 15:23 2018-03-01 15:23 minitauros atsakymas kovo 1 d. 18 d. 15:23 2018-03-01 15:23

Man sekasi šie bash scenarijai. Ji taip pat gali gauti prašomų lentelių schemą.

1
14 мая '18 в 18:19 2018-05-14 18:19 atsakymą pateikė Wolfgang Fahl gegužės 14 d., 18 val. 18:19 val

Jei kompiuteryje, kuriame naudojate, yra įdiegta PHP, galite parašyti PHP scenarijų. Diegiant PHP reikia MySQL plėtinio.

PHP komandą galite naudoti iš komandų eilutės:

 php --php-ini path/to/php.ini your-script.php 

--php-ini jungiklį, nes jums gali tekti naudoti savo PHP konfigūraciją, kuri leidžia MySQL plėtinį. Naudojant PHP 5.3.0+, šis plėtinys yra įjungtas pagal numatytuosius nustatymus, todėl nereikia naudoti konfigūracijos, kad ją įgalintų.

Tada galite rašyti eksporto scenarijų, kaip ir bet kurį įprastą PHP scenarijų:

 <?php #mysql_connect("localhost", "username", "password") or die(mysql_error()); mysql_select_db("mydb") or die(mysql_error()); $result = mysql_query("SELECT * FROM table_with_the_data p WHERE p.type = $typeiwant"); $result || die(mysql_error()); while($row = mysql_fetch_row($result)) { $comma = false; foreach ($row as $item) { # Make it comma separated if ($comma) { echo ','; } else { $comma = true; } # Quote the quotes $quoted = str_replace("\"", "\"\"", $item); # Quote the string echo "\"$quoted\""; } echo "\n"; } ?> 

Šio metodo privalumas yra tas, kad jis neturi problemų su varchar ir teksto laukais, kuriuose yra tekstas, kuriame yra naujos eilutės. Šie laukai yra teisingai cituojami, ir šios naujos eilutės jose bus interpretuojamos CSV skaitytojo kaip teksto dalimi, o ne kaip įrašų ribotojai. Tai yra sunku nustatyti po sed ar pan.

0
17 марта '12 в 11:46 2012-03-17 11:46 atsakymą pateikė vartotojo7610 kovo 17 d., 12 val. 11:46 2012-03-17 11:46

Naudoju [SQLyog] (webyog.com/product/sqlyog) eksportuoti į csv. Tai gana paprasta.

Štai keletas nuorodų į ją: http://sqlyogkb.webyog.com/article/215-export-data

Užklausos sqlyog kaip csv rezultatas

0
05 дек. atsakymą pateikė Veer Abheek Singh Manhas 05 d. 2017-12-05 04:20 '17 at 4:20 2017-12-05 04:20

Kas dirbo man:

 SELECT * FROM students WHERE foo = 'bar' LIMIT 0,1200000 INTO OUTFILE './students-1200000.csv' FIELDS TERMINATED BY ',' ESCAPED BY '"' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; 

Nė vienas iš šio srauto sprendimų neveikė mano konkrečiu atveju, turėjau gražių „Json“ duomenų viename iš stulpelių, kurie gali būti sugadinti mano „csv“ produkte. Tiems, kurie susiduria su panašiomis problemomis, pabandykite stygas, kurios baigiasi „n“.

Kita problema tiems, kurie bando atidaryti CSV su „Microsoft Excel“, turėkite omenyje, kad yra 32,767 simbolių apribojimas, kurį gali turėti vienas >

 SELECT id,name,CHAR_LENGTH(json_student_description) AS 'character length' FROM students WHERE CHAR_LENGTH(json_student_description)>32767; 
-1
07 нояб. atsakymą pateikė Rohit Chemburkar 07 lapkritis. 2018-11-07 09:15 '18, 9:15 am 2018-11-07 09:15

Iš SQL / terminalo redaktoriaus galite naudoti šią komandą:

" mysql -h (hostname / IP>) -u (vartotojo vardas) -p (slaptažodis) duomenų bazės pavadinimas <(query.sql)> outputFILE (.txt / .xls) "

pavyzdžiui, hostname -x.xxx

uname - naudotojo vardas

slaptažodis - slaptažodis

DBName - workerDB

queryFile - worker.sql

outputFile - outputFile.xls

mysql -h xxxx -u vartotojo vardas -p slaptažodis workerDB <worker.sql> outputFile.xls

Įsitikinkite, kad vykdote komandą iš katalogo, kuriame yra SQL užklausa, arba nurodykite visą kelią į SQL užklausos vietą pirmiau esančioje komandoje.

-1
24 сент. Atsakymas, kurį pateikė Ripudaman Singh 24 Sep. 2018-09-24 15:43 '18, 15:43 2018-09-24 15:43

Kiti klausimai apie „ arba „ Užduoti klausimą“