MySQL SELECT INTO OUTFILE导出CSV重复列名无数据问题咨询
问题原因
你修改后的语句出现该问题的核心原因是:UNION ALL 下的第二个查询中,你给col1、col2加上了单引号,此时SQL不会将其识别为表tt1的字段,而是将其解析为固定字符串常量,因此查询返回的每一行都会输出固定的col1、col2值,和表中的实际数据无关。
修正方案
直接去掉第二个查询里字段名外层的单引号即可,需要导出更多限定列时直接在该处追加字段名即可。如果字段名是MySQL保留关键字,需要用反引号(`)包裹字段名,不要使用单引号,避免被识别为字符串。
修正后的完整语句如下:
SELECT * FROM ( SELECT 'col1','col2' UNION ALL ( SELECT col1,col2 FROM tt1 WHERE (col1 = '12345') AND col2 BETWEEN CAST('2018-01-01' AS DATE) AND CAST('2021-03-31' AS DATE) ) ) resulting_set INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/Exports/changeme.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
内容的提问来源于stack exchange,提问作者Tachikoma
相关产品推荐
相关产品推荐

