kzen.dev
  • Питання
  • Мітки
  • Користувачі
Сповіщення
Нагороди
Реєстрація
Після реєстрації ви отримаєте повідомлення про відповіді та коментарі на свої запитання.
Ввійти
Якщо у вас вже є обліковий запис, увійдіть, щоб перевірити нові сповіщення.
За додані запитання, відповіді та коментарі будуть винагороди.
Ще
Джерело
Редагувати
 MCS
MCS
Question

Як вивести результати запиту до 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 2008-12-10T15:59:51+00:00 3
 codeforester
codeforester
Edited question 7-го липня 2018 в 3:26
Comma-separated values - Wikipedia
en.wikipedia.org
Програмування
csv
mysql
quotes
This question has 1 відповідь in English, to read them log in to your account.
Solution / Answer
Paul Tomblin
Paul Tomblin
10-го грудня 2008 в 4:07
2008-12-10T16:07:55+00:00
Ще
Джерело
Редагувати
#8683723

Від 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';

При використанні цієї команди назви стовпців не будуть експортовані.

Також зверніть увагу, що файл /var/lib/mysql-files/orders.csv буде знаходитися на сервері, на якому запущено MySQL. Користувач, під яким запущено процес MySQL, повинен мати права на запис в обраний каталог, інакше команда не буде виконана.

Якщо ви хочете записати висновок на вашу локальну машину з віддаленого сервера (особливо хостингу або віртуальної машини, такої як Heroku або Amazon RDS), це рішення не підходить.

Patrick M
Patrick M
Edited answer 12-го жовтня 2017 в 7:34
1666
0
API штучного інтелекту для парсингу конкурентів
productapi.dev
 serbaut
serbaut
30-го вересня 2009 в 10:51
2009-09-30T10:51:27+00:00
Ще
Джерело
Редагувати
#8683725

mysql --batch, -B

Вивести результати з використанням табуляції в якості роздільника стовпців; Вивести результати, використовуючи табуляцію як роздільник стовпців, з кожним рядком з нового рядка з нового рядка. При цьому параметрі mysql не використовує файл історії. Пакетний режим призводить до нетабличного формату виводу та екранування спеціальних символів. Екранування можна відключити, використовуючи необроблений режим; див. опис опції --raw.

Це дасть вам файл, розділений табуляцією. Оскільки коми (або рядки, що містять коми) не екрануються, змінити роздільник на кому не так просто.

198
0
API штучного інтелекту для парсингу конкурентів
productapi.dev
 Jonathan
Jonathan
10-го грудня 2008 в 11:34
2008-12-10T23:34:58+00:00
Ще
Джерело
Редагувати
#8683724

В якості альтернативи відповіді вище, ви можете мати таблицю MySQL, яка використовує механізм CSV.

Тоді у вас на жорсткому диску буде файл, який завжди буде у форматі CSV, який ви можете просто скопіювати, не обробляючи його.

11
0
Додати питання
Категорії
Все
Технологія
Культура / Відпочинок
Життя / Мистецтво
Наука
Професіонал
Бізнес
Користувачі
All
New
Popular
1
Inessa bu
Registered 1 місяць тому
2
Denis Babushkin
Registered 1 місяць тому
3
asakuno asakuno
Registered 1 місяць тому
4
aldo salerno
Registered 1 місяць тому
5
Анна Батицкая
Registered 1 місяць тому
API штучного інтелекту для парсингу конкурентів
productapi.dev
DE
EL
ES
FI
FR
ID
IT
JA
NL
NO
PL
PT
RO
RU
SK
TR
UK
ZH
© kzen.dev 2023
Джерело
stackoverflow.com
за ліцензією cc by-sa 3.0 з атрибуцією