MYSQL - 如何只指定特定字段导出表格?

12

如何仅导出指定字段的表格?

我正在使用mysql 5.0 - 可以使用sql命令或mysqldump。

我的表名为X,我想导出的字段是A,B,C。

5个回答

21
SELECT A,B,C
FROM X
INTO OUTFILE 'file name';

您需要FILE权限才能执行此操作,它不会覆盖文件。

INTO OUTFILE 也有许多选项,例如FIELDS ENCLOSED BYFIELDS 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';

7

如果您正在使用phpMyAdmin,

运行以下查询:

SELECT A,B,C FROM X

结果底部有导出选项。


5

OUTFILE命令不能生成SQL转储文件,mysqldump也无法在列的子集上操作。 但是你可以使用create table temp_weeeee select ....命令,导出并删除它。


4

Shell命令

echo 'select field from db.table;' | mysql -u user -p password > output.txt

1
完美!显然它也适用于多个字段:echo 'select column1,column2,column3 from database.table;' | mysql -u user -ppassword > output.txt - Danny Schoemann
感谢提供Shell命令!这也包括输出中的字段名。有没有办法省略它? - axil
1
@axil 使用 -N, --skip-column-names 选项。 - Burhan Ali

1

尝试:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接