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



我正在大幅修改我原来的问题。。。

这非常适合将表转储到第一行有字段名的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;

您可以将其输出传递到一个新文件,然后将来自outfile查询的数据附加到

cat /var/tmp/table_name.csv >> new_file

相关内容

  • 没有找到相关文章

最新更新