2014-01-21 6 views
65

Как сохранить вывод запроса MySQL на лист MS Excel?Как сохранить вывод запроса MySQL в файл excel или .txt?

Даже если хранить данные можно только в файле .txt, все будет в порядке.

+0

если вы используете PHPMyAdmin, есть возможность экспорт как csv или excel ect –

+0

@KrishR где я могу знать? Я довольно новичок в workbench –

+1

Какая версия ОС у вас есть? Linux или windows? –

ответ

116

От Save MySQL query results into a text or CSV file:

MySQL provides an easy mechanism for writing the results of a select statement into a text file on the server. Using extended options of the INTO OUTFILE nomenclature, it is possible to create a comma separated value (CSV) which can be imported into a spreadsheet application such as OpenOffice or Excel or any other applciation which accepts data in CSV format.

Given a query such as

SELECT order_id,product_name,qty FROM orders 

which returns three columns of data, the results can be placed into the file /tmo/orders.txt using the query:

SELECT order_id,product_name,qty FROM orders 
INTO OUTFILE '/tmp/orders.txt' 

This will create a tab-separated file, each row on its own line. To alter this behavior, it is possible to add modifiers to the query:

SELECT order_id,product_name,qty FROM orders 
INTO OUTFILE '/tmp/orders.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 

In this example, each field will be enclosed in “double quotes,” the fields will be separated by commas, and each row will be output on a new line separated by a newline (\n). Sample output of this command would look like:

"1","Tech-Recipes sock puppet","14.95" "2","Tech-Recipes chef's hat","18.95" 

Keep in mind that the output file must not already exist and that the user MySQL is running as has write permissions to the directory MySQL is attempting to write the file to.

Синтаксис

SELECT Your_Column_Name 
    FROM Your_Table_Name 
    INTO OUTFILE 'Filename.csv' 
    FIELDS TERMINATED BY ',' 
    ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 

Или вы могли бы попробовать это слишком

You could try executing the query from the your local client and redirect the output to a local file destination;

Mysql -user -pass -e"select cols from table where cols not null" > /tmp/output 
+3

Когда вы цитируете чужую работу, вы должны указать, что вы цитировали кавычки блоков, чтобы указать, что они не ваши собственные слова. –

+0

Имя пользователя MySQL не является системным именем пользователя и, следовательно, по определению не имеет права доступа ни к чему, даже к/tmp. В чем смысл использования mysql userid вместо эффективного пользователя для вывода разрешений на запись? Есть ли способ обойти это (и я не имею в виду, создавая нового пользователя системы). –

+1

Важно отметить, что это создает файл на сервере. Поскольку в документах select to explain, вам нужно использовать команду mysql как mysql -e «select ...». http://dev.mysql.com/doc/refman/5.7/en/select-into.html – jgomo3

4

Вы можете написать следующие коды для выполнения этой задачи:

SELECT ... FROM ... WHERE ... 
INTO OUTFILE 'textfile.csv' 
FIELDS TERMINATED BY '|' 

Это экспортировать результат в CSV, а затем экспортировать его в Excel лист.

+4

получил код ошибки: 1045 Доступ запрещен – user2568374

+0

@ user2568374 У вашего пользователя mysql нет разрешения на запись внутри указанной папки. вы можете запустить это прямо из командной строки как: mysql -u USER -pPASSWORD -e «выбрать ... из базы данных.table, где ...»> желательно/file.txt – mandza

Смежные вопросы