我正在大幅修改我原来的问题......
这非常适合将您的表格转储到 CSV 文件,字段名称位于第一行。
SELECT 'field1', 'field2', 'field3'
UNION SELECT * INTO OUTFILE '/var/tmp/table_name.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n' FROM table_name;
但是,当您有数百个字段并且不时添加新字段或更改或删除字段时,我需要一些动态的东西,将字段名称动态地放在上面的格式中,这样这个查询就可以随时在脚本中运行无需手动更新字段名称。
最佳答案
怎么样-
SELECT CONCAT(GROUP_CONCAT(COLUMN_NAME SEPARATOR ','), "\n")
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'db' AND TABLE_NAME = 'tbl'
GROUP BY TABLE_NAME;
您可以将此输出传递给 new_file,然后附加来自 outfile 查询的数据 -
cat /var/tmp/table_name.csv >> new_file
关于mysql 到 CSV,第一行的列名动态插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9890030/