Mysql 如何选择标题标签用引号括起来但不包含正文字段的“输入到输出文件”中?
我不相信这个问题是重复的 我希望正文中的行被双引号“选择性地括起来”。数值不应包含在内。没有头球很容易做到。但是,当您使用UNION包含一个标题时,MySQL现在将每个列视为字符串类型,并将所有值括在引号中 您可以像下面这样添加一个标头以选择输出文件:Mysql 如何选择标题标签用引号括起来但不包含正文字段的“输入到输出文件”中?,mysql,export-to-csv,into-outfile,Mysql,Export To Csv,Into Outfile,我不相信这个问题是重复的 我希望正文中的行被双引号“选择性地括起来”。数值不应包含在内。没有头球很容易做到。但是,当您使用UNION包含一个标题时,MySQL现在将每个列视为字符串类型,并将所有值括在引号中 您可以像下面这样添加一个标头以选择输出文件: SELECT "id", "numerical_values", "string_values" #header section of csv UNION ALL SELECT `id`, `numerical_values`, `string_
SELECT "id", "numerical_values", "string_values" #header section of csv
UNION ALL
SELECT `id`, `numerical_values`, `string_values` #body section of csv
INTO OUTFILE "/tmp/values.csv"
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM `values_table`
同样,如果省略标题,则只有string\u值
将被引号括起来。
对于标题,所有列都被视为字符串列,并将被封闭
我试过这个:
SELECT '"', "id", ',"', "numerical_values", ',"', "string_values", '"'
#added quotes/commas to header
UNION ALL
SELECT `id`, ',', `numerical_values`, ',"', `string_values`, '"'
#added commas, and add quotes around string_values
INTO OUTFILE "/tmp/values.csv"
FIELDS TERMINATED BY "" ENCLOSED BY '' #empty values for fields terminated and enclosed
# empty because manually selected in query
LINES TERMINATED BY "\n"
FROM `values_table`
我原以为这样行得通,但最终我得到了一堆额外的空白。这是我刚刚用第二种方法创建的一个文件。标题行在“string7”处结束。第一行数据在“207”之后结束。我只是把第三行的一部分放进去
" num1"," string1"," num2"," string2"," num3"," string3"," num4"," string4"," num5"," string5"," num6"," string6"," string7""
33.95 ," 1023 ", 7.50 ," 207-1023 ", 26.95 ,"2 1023 ",23.00 ,"3Wx4Hx4D ",19.00 ,"1023 ", 0.00 ,"UPC: 123456789012 "," 207 "
40.95 ," 1058 ", 9.00 ,
工作完美。我希望有一个更简单的方法,但这样做的工作。谢谢@eggyal,thx,使我不必再编写单独的脚本。感谢您的提问,@buttle butkus的可能副本很好地找到了这个问题的答案。@AdrianBR这个问题已被浏览10918次,所以我很高兴它最终帮助了某人!;)
SELECT '"id"', '"numerical_values"', '"string_values"'
UNION ALL
SELECT id, numerical_values, CONCAT('"', REPLACE(string_values, '"', '""'), '"')
INTO OUTFILE '/tmp/values.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM values_table