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

use*_*563 2 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;
Run Code Online (Sandbox Code Playgroud)

但是,当你有数百个字段和新字段被添加或字段被不时更改或删除时,我需要一些动态的东西,将字段名称以上面的格式动态放置,这样这个查询就可以随时在脚本中运行而不必手动更新字段名称.

nni*_*ols 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;
Run Code Online (Sandbox Code Playgroud)

您可以将输出从此传递给new_file,然后附加outfile查询中的数据 -

cat /var/tmp/table_name.csv >> new_file
Run Code Online (Sandbox Code Playgroud)

  • 在这附近,我们通过接受答案表示感谢.只需点击您要接受的答案左侧的勾选即可. (6认同)