MYSQL - Как мне экспортировать таблицы, указав только определенные поля? - PullRequest
12 голосов
/ 12 декабря 2008

Как экспортировать таблицы с указанием только определенных полей?

Я использую mysql 5.0 - использую команду sql или mysqldump.

Моя таблица - X, а поля, которые я хочу экспортировать - A, B, C

Ответы [ 5 ]

21 голосов
/ 12 декабря 2008
SELECT A,B,C
FROM X
INTO OUTFILE 'file name';

Для этого вам нужна привилегия FILE, и она не будет перезаписывать файлы.

INTO OUTFILE также имеет множество опций, таких как FIELDS ENCLOSED BY, FIELDS ESCAPED BY и т. Д., Которые вы можете посмотреть в руководстве .

Чтобы создать файл CSV, вы должны сделать что-то вроде:

SELECT A,B,C
INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM X;

Чтобы загрузить данные обратно из файла, используйте команду LOAD DATA INFILE с теми же параметрами, которые вы использовали для выгрузки. Для вышеприведенного формата CSV это будет

LOAD DATA INFILE '/tmp/result.txt'
INTO TABLE X
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';
8 голосов
/ 20 октября 2013

Если вы используете phpMyAdmin,

Выполнить запрос

ВЫБРАТЬ A, B, C ОТ X

и в нижней части результата есть опция экспорта.

5 голосов
/ 19 июля 2012

OUTFILE не создает дамп SQL, и mysqldump не может работать с подмножеством столбцов. Но вы можете create table temp_weeeee select .... экспортировать и бросить его.

4 голосов
/ 16 апреля 2013

Команда оболочки

echo 'select field from db.table;' | mysql -u user -p password > output.txt
1 голос
/ 12 декабря 2008

Попробуйте:

SELECT col1, col2
  INTO OUTFILE '/filepath/export.txt'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
FROM table;
...