我有一个 MySQL 表,必须将其作为 CSV 文件取出。我使用的查询是
SELECT "ID","NAME","SALARY","SAL1","SAL2","SAL3","SAL4","SAL5","SAL6","SAL7","SAL8","SAL9","SAL10","SAL11","SAL12","SAL13","SAL14","SAL15","SAL16","SAL17","SAL18","SAL19","SAL20","SAL21","SAL22","SAL23","SAL24","SAL25","SAL26"
UNION ALL
SELECT *
FROM addstock25
INTO OUTFILE "E:\\JOSE DATA\\addstock7.csv"
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
此查询有效,但如果我有 200 个列名怎么办? 有没有不用手动输入的方法?
最佳答案
此命令几乎可以满足您的需求,它甚至可以与远程服务器一起使用。唯一需要注意的是它会生成一个 TSV 文件(字段由制表符分隔)。
mysql mydb -e "select * from mytable" -B > mytable.tsv
但是您可以使用 sed 将其转换为 CSV,如 this answer 中的建议。 :
mysql mydb -e "select * from mytable" -B | sed "s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > mytable.csv
关于mysql - 将 MySQL 表导出到 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22783202/