创建包含 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
变量接收这些文件字段的值,而列名接收这些文件字段。