将MYSQL表导出到CSV。查询不';行不通

将MYSQL表导出到CSV。查询不';行不通,mysql,csv,export-to-csv,Mysql,Csv,Export To Csv,我正在尝试将表的某些字段导出到csv文件中。。。 我使用的查询是 SELECT "field1", "field1", "field3" UNION ALL SELECT * FROM mytable INTO OUTFILE "/Users/davide/Documents/file.csv" FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' 但是mysql回来了 ERROR 1222 (21000): The used SELECT sta

我正在尝试将表的某些字段导出到csv文件中。。。 我使用的查询是

SELECT "field1", "field1", "field3"
UNION ALL
SELECT *
FROM mytable
INTO OUTFILE "/Users/davide/Documents/file.csv"
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
但是mysql回来了

ERROR 1222 (21000): The used SELECT statements have a different number of columns
该表还有两个字段,但我认为这不是问题所在


谢谢

问题是,当您使用
UNION
语句时,必须确保两个
SELECT
s语句的列数相同

例如,如果需要填充“空”空间,可以使用
NULL

SELECT "field1", "field1", "field3", NULL, NULL
UNION ALL
SELECT *
FROM mytable
INTO OUTFILE "/Users/davide/Documents/file.csv"
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'

问题是,当使用
UNION
语句时,必须确保两个
SELECT
s语句的列数相同

例如,如果需要填充“空”空间,可以使用
NULL

SELECT "field1", "field1", "field3", NULL, NULL
UNION ALL
SELECT *
FROM mytable
INTO OUTFILE "/Users/davide/Documents/file.csv"
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'

不要使用
选择*
,列出要放入CSV的特定列<代码>选择*意味着返回表中的所有列

SELECT "field1", "field1", "field3"
UNION ALL
SELECT field1, field2, field3
FROM mytable
INTO OUTFILE "/Users/davide/Documents/file.csv"
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'

不要使用
选择*
,列出要放入CSV的特定列<代码>选择*意味着返回表中的所有列

SELECT "field1", "field1", "field3"
UNION ALL
SELECT field1, field2, field3
FROM mytable
INTO OUTFILE "/Users/davide/Documents/file.csv"
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'

还有两个字段是个问题。CSV中相同数量的列必须与要导入的表匹配。如果表有5列,但与一个有3列的查询合并,为什么不认为这是一个问题?这是UNION的标准定义和每个SQL实现中的一个错误。这就是错误消息告诉你的。多出两个字段是个问题。CSV中相同数量的列必须与要导入的表匹配。如果表有5列,但与一个有3列的查询合并,为什么不认为这是一个问题?这是UNION的标准定义和每个SQL实现中的一个错误。这是错误消息告诉您的信息。查询工作正常,但所有字段都进入csv,而不是选定字段。您的第二次选择有一个
*
,因此它会选择所有字段,您需要指定您希望输出的样子,这将有助于样本输入。其他查询工作正常,但是,所有字段都被输入到csv中,而不是仅被选中。您的第二次选择有一个
*
,因此它会选择所有字段,您需要指定您希望输出的外观,这也会有助于示例输入