mysql到CSV,动态插入第一行的列名

时间:2012-03-27 13:00:23

标签: mysql csv field-names

我正在修改我原来的问题......

这非常适合将表格转储为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;

但是,当你有数百个字段添加新字段或者不时更改或删除字段时,我需要一些动态的东西,它会将字段名称置于上面的格式中,以便此查询可以随时在脚本中使用无需手动手动更新字段名称。

1 个答案:

答案 0 :(得分:11)

怎么样 -

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