查询 mysql,放置空字段,并使用 PHP 将数据导出为 CSV


Query mysql, place empty fields, and export data as CSV using PHP

创建包含 100+ 个字段的 CSV 文件的最佳方法是什么,而实际上只使用了 1/3?

一个简单的例子是(请耐心等待):

如果我有一个 5 列表 (X,O,#,T,P) 的行数为 X 并且 csv 格式需要

X,,,,O,,,,T,P,,,,,,#,,,

谢谢!

一种方法是您可以将虚拟列放在查询本身select然后从输出创建一个CSV

select X,'','','',O,'','','',T,P,'','','','','',#,'','' from table_name; // this will by default give you your CSV structured output.
$fp = fopen('file_name', 'w');
fputcsv($fp, $values);

您可以使用MySQL查询直接将表数据导出到csv文件

"SELECT column1, column2, column3 INTO OUTFILE '<filename>' FIELDS TERMINATED BY ',' ENCLOSED BY ''"' ESCAPED BY '''' LINES TERMINATED BY ''r'n' FROM table1;"

您可以在 SELECT 子句中创建大量空字段

SELECT X, '' AS col2, '' AS col3, '', O, '', '', '', '', T, P, '', '', '', '', '', '', `#`, '', ''
INTO OUTFILE 'filename.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY ''n'
FROM yourTable;

将文件读回表时,可以指定文件的哪些字段进入表,如下所示:

LOAD DATA INFILE 'filename.csv'
INTO TABLE yourTable
(X, @dummy, @dummy, @dummy, O, @dummy, @dummy, @dummy, @dummy, T, P, @dummy, @dummy, @dummy, @dummy, @dummy, @dummy, `#`, @dummy, @dummy);

@dummy变量接收这些文件字段的值,而列名接收这些文件字段。