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

标签 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;

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

最佳答案

怎么样-

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/

相关文章:

mysql - 在 Windows 中更改 mysql DATADIR

matlab - 将元胞数组输出到 CSV 文件 (MATLAB)

使用pylab(matplotlib)读取csv数据时出现python EOF错误

mysql - 它不会显示父表中的名称,仅显示数字或 ID

MySQL 错误消息 : Subquery Returns More than 1 Row

php - 如何在运行时更改 sql_mode

python - CSV dtype 中的 numpy rearray 有很多列,但 shape 只显示一行,这是为什么?

record - 通过引用访问记录字段

java - 如何将 JSON 字段名称映射到 Java 对象字段名称

PHP:以递归方式填充数组